lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 17 Feb 2011 14:42:35 +0800 From: Cypher Wu <cypher.w@...il.com> To: Américo Wang <xiyou.wangcong@...il.com> Cc: linux-kernel@...r.kernel.org, Chris Metcalf <cmetcalf@...era.com>, Eric Dumazet <eric.dumazet@...il.com>, netdev <netdev@...r.kernel.org> Subject: Re: Fwd: IGMP and rwlock: Dead ocurred again on TILEPro On Thu, Feb 17, 2011 at 1:42 PM, Américo Wang <xiyou.wangcong@...il.com> wrote: > On Thu, Feb 17, 2011 at 01:04:14PM +0800, Cypher Wu wrote: >>> >>> Have you turned CONFIG_LOCKDEP on? >>> >>> I think Eric already converted that rwlock into RCU lock, thus >>> this problem should disappear. Could you try a new kernel? >>> >>> Thanks. >>> >> >>I haven't turned CONFIG_LOCKDEP on for test since I didn't get too >>much information when we tried to figured out the former deadlock. >> >>IGMP used read_lock() instead of read_lock_bh() since usually >>read_lock() can be called recursively, and today I've read the >>implementation of MIPS, it's should also works fine in that situation. >>The implementation of TILEPro cause problem since after it use TNS set >>the lock-val to 1 and hold the original value and before it re-set >>lock-val a new value, it a race condition window. >> > > I see no reason why you can't call read_lock_bh() recursively, > read_lock_bh() is roughly equalent to local_bh_disable() + read_lock(), > both can be recursive. > > But I may miss something here. :-/ > Of course read_lock_bh() can be called recursively, but read_lock() is already enough for IGMP, the only reason for that deadlock is because using TNS instruction set the value to 1 cause another race condition. -- Cyberman Wu -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists