David S. Miller wrote:
On Mon, 28 Mar 2005 12:08:14 -0800
Ben Greear <greearb@xxxxxxxxxxxxxxx> wrote:
I was also wondering why we couldn't hold a reference to the net-device
instead of just it's ifindex when dealing with a bound raw socket.
Because then raw sockets could make unloading of netdevices
hang forever. That is, unless you add some netdev notifier
to af_packet.c that walks all the raw sockets looking for netdev
references.
> I guess it also would make things like leaving a dump running
> while you quickly down/up and interface stop working.
>
I was thinking of removing the reference only when the NETDEV_UNREGISTER
event was sent. That will allow sockets to work through UP and DOWN transitions
of the device as it does currently.
We could also save the name of the interface in the socket struct and resolve
the device in a lazy manner. That way, even if the device is truly gone, the
worst case performance will be like it is today.
It would be nice to have a list of all of these sockets so we could get info
on them similar to the 'netstat -an' output anyway...
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
|