From: Michal Ostrowski <[EMAIL PROTECTED]>
Date: Tue, 13 Mar 2007 09:09:33 -0500

> below you find a patch that (hopefully) fixes a race between an interface
> going down and a connect() to a peer on that interface. Before,
> connect() would determine that an interface is up, then the interface
> could go down and all entries referring to that interface in the
> item_hash_table would be marked as ZOMBIEs and their references to
> the device would be freed, and after that, connect() would put a new
> entry into the hash table referring to the device that meanwhile is
> down already - which also would cause unregister_netdevice() to wait
> until the socket has been release()d.
> 
> This patch does not suffice if we are not allowed to accept connect()s
> referring to a device that we already acked a NETDEV_GOING_DOWN for
> (that is: all references are only guaranteed to be freed after
> NETDEV_DOWN has been acknowledged, not necessarily after the
> NETDEV_GOING_DOWN already). And if we are allowed to, we could avoid
> looking through the hash table upon NETDEV_GOING_DOWN completely and
> only do that once we get the NETDEV_DOWN ...
> 
> mostrows:
> pppoe_flush_dev is called on NETDEV_GOING_DOWN and NETDEV_DOWN to deal with
> this "late connect" issue.  Ideally one would hope to notify users at the
> "NETDEV_GOING_DOWN" phase (just to pretend to be nice).  However, it is the
> NETDEV_DOWN scan that takes all the responsibility for ensuring nobody is
> hanging around at that time.
> 
> Signed-off-by: Florian Zumbiehl <[EMAIL PROTECTED]>
> Acked-by: Michal Ostrowski <[EMAIL PROTECTED]>

Applied to net-2.6.22, thanks!
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to