Tommy Christensen wrote:
Jeff Garzik wrote:
I haven't heard anything to convince me that the same change should be
deployed across NNN drivers. The drivers already signal the net core
that the link is down; to me, that implies there should be code in
_one_ place that handles this condition, not NNN places.
AFAICS only a handful of (newer) drivers call netif_stop_queue() directly.
Others may do this indirectly if the MAC stops taking packets from the
DMA ringbuffer. At least some MAC's/drivers certainly don't.
Incorrect. Use of netif_stop_queue() is -required- to signal that the
hardware cannot accept any more skbs from the system.
Far more than a "handful" and required for all but a few very strange
drivers.
OK, another view on this: isn't is problematic to have skb's stuck in
the network stack "indefinitely" ?
They hold references to a dst_entry and a sock (and probably more).
So how about this for the FAQ:
Q: Why can't I unload the af_packet module?
A: Ohh, you'll have to plug in the darn cable to eth0 first!
*Please* tell me, I've got this all wrong.
You've got this all wrong.
Jeff
|