[PATCH 4/4] iseries_veth: Cleanup skbs to prevent unregister_netdevice() hanging
David Gibson
david at gibson.dropbear.id.au
Thu May 12 21:28:57 EST 2005
On Thu, May 12, 2005 at 06:09:45PM +1000, Michael Ellerman wrote:
> Hi Andrew, Jeff,
>
> The iseries_veth driver is badly behaved in that it will keep TX packets
> hanging around forever if they're not ACK'ed and the queue never fills up.
>
> This causes the unregister_netdevice code to wait forever when we try to take
> the device down, because there's still skbs around with references to our
> struct net_device.
>
> There's already code to cleanup any un-ACK'ed packets in veth_stop_connection()
> but it's being called after we unregister the net_device, which is too late.
>
> The fix is to rearrange the module exit function so that we cleanup any
> outstanding skbs and then unregister the driver.
>
> Signed-off-by: Michael Ellerman <michael at ellerman.id.au>
Nice catch.
Acked-by: David Gibson <david at gibson.dropbear.id.au>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/people/dgibson
More information about the Linuxppc64-dev
mailing list