From: Herbert Xu <herb...@gondor.apana.org.au> Date: Tue, 22 Sep 2015 11:38:56 +0800
> The commit 1f770c0a09da855a2b51af6d19de97fb955eca85 ("netlink: > Fix autobind race condition that leads to zero port ID") created > some new races that can occur due to inconcsistencies between the > two port IDs. > > Tejun is right that a barrier is unavoidable. Therefore I am > reverting to the original patch that used a boolean to indicate > that a user netlink socket has been bound. > > Barriers have been added where necessary to ensure that a valid > portid and the hashed socket is visible. > > I have also changed netlink_insert to only return EBUSY if the > socket is bound to a portid different to the requested one. This > combined with only reading nlk->bound once in netlink_bind fixes > a race where two threads that bind the socket at the same time > with different port IDs may both succeed. > > Fixes: 1f770c0a09da ("netlink: Fix autobind race condition that leads to zero > port ID") > Reported-by: Tejun Heo <t...@kernel.org> > Reported-by: Linus Torvalds <torva...@linux-foundation.org> > Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au> I've decided to apply this and queue it up for -stable. Thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html