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

> pppoe_flush_dev() kicks all sockets bound to a device that is going down.
> In doing so, locks must be taken in the right order consistently (sock lock,
> followed by the pppoe_hash_lock).  However, the scan process is based on
> us holding the sock lock.  So, when something is found in the scan we must
> release the lock we're holding and grab the sock lock.
> 
> This patch fixes race conditions between this code and pppoe_release(),
> both of which perform similar functions but would naturally prefer to grab
> locks in opposing orders.  Both code paths are now going after these locks
> in a consistent manner.
> 
> pppoe_hash_lock protects the contents of the "pppox_sock" objects that reside
> inside the hash.  Thus, NULL'ing out the pppoe_dev field should be done
> under the protection of this lock.
> 
> Signed-off-by: Michal Ostrowski <[EMAIL PROTECTED]>

Aha, this one applies cleanly :-)

But I had to edit out some trailing whitespace this patch
added, please be mindful of this in the future, thanks!

Adds trailing whitespace.
diff:48:                        
Adds trailing whitespace.
diff:52:                         * hold the sock lock while doing any 
unbinding, 
Adds trailing whitespace.
diff:53:                         * we need to release the lock we're holding.  
Adds trailing whitespace.
diff:81:                
Adds trailing whitespace.
diff:121:               __delete_item(po->pppoe_pa.sid, 
warning: 5 lines add trailing whitespaces.
-
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