[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <647250b251454fa99f4e473e553c99d7@AcuMS.aculab.com>
Date: Tue, 20 Jun 2023 11:16:58 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Andrew Lunn' <andrew@...n.ch>, FUJITA Tomonori
<fujita.tomonori@...il.com>
CC: "greg@...ah.com" <greg@...ah.com>, "alice@...l.io" <alice@...l.io>,
"kuba@...nel.org" <kuba@...nel.org>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "rust-for-linux@...r.kernel.org"
<rust-for-linux@...r.kernel.org>, "aliceryhl@...gle.com"
<aliceryhl@...gle.com>, "miguel.ojeda.sandonis@...il.com"
<miguel.ojeda.sandonis@...il.com>
Subject: RE: [PATCH 0/5] Rust abstractions for network device drivers
....
> Not releasing the frame at all is a different problem, and probably
> not easy to fix. There is some degree of handover of ownership of the
> skb. When asked to transmit it, the driver should eventually release
> the skb. However, that is often sometime in the future after the
> hardware has confirmed it has DMAed a copy of the frame into its own
> memory. On the receive side, in the normal path the driver could
> allocate an skb, setup the DMA to copy the frame into it, and then
> wait for an indication the DMA is complete. Then it passes it to the
> network stack, at which point the network stack becomes the owner.
>
> But there are no simple scope rules to detect an skb has been leaked.
You can require/enforce that the pointer the driver has is set to
NULL when the skb is successfully passed on.
But that tends to require passing the pointer by reference.
Ok for long-lived items but a likely performance hit for skb.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists