On Fri, Aug 20, 2010 at 11:32 AM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > Le vendredi 20 août 2010 à 11:04 -0400, yao zhao a écrit : > >> The code here is deleting a global from the list, am I right? I didn't >> see any called case. >> what are you going to do more? free it? write_unlock_bh should make the mb. > > > If you dont wait _after_ delete from list and following actions > (kfree() without a call_rcu(), or module unload, or whatever), a reader > might access your data/code and crash the box. > > spin_unlock_bh() wont help you at all, since only writers are freezed by > the lock (since readers only hold rcu_lock) > > Documentation/RCU/whatisRCU.txt line 705 > > Documentation/RCU/checklist.txt 15) > > > > I read the code again and that global is in a module then you are right. If that global is not in a module then you don't need it at all, as in that global only functions pointer or name... which never be changed. yao -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html