On Wed, 2007-10-03 at 22:59 +0900, Tetsuo Handa wrote:You can indeed not sleep in an rcu_read_lock() section. However, you could grab a reference on an item, stop the iteration, drop rcu_read_lock. Do you thing, re-acquire rcu_read_lock(), drop the ref, and continue the iteration. Also, how do you avoid referencing dead data with your sll? I haven't actually looked at your patches, but the simple scheme you outlined didn't handle the iteration + concurrent removal scenario: thread 1 thread 2 foo = ptr->next < schedule > killme = ptr->next (same item) ptr->next = ptr->next->next; kfree(killme) < schedule > foo->bar <-- *BANG* -
| Jianjun Kong | [PATCH] Standard indentation of arguments |
| Trond Myklebust | Re: recent nfs change causes autofs regression |
| Andrew Morton | 2.6.23-rc8-mm2 |
| Mark Lord | Re: Linux 2.6.24-rc7 |
git: | |
| KOSAKI Motohiro | [bug?] tg3: Failed to load firmware "tigon/tg3_tso.bin" |
| Winkler, Tomas | RE: iwlwifi: fix build bug in "iwlwifi: fix LED stall" |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| Marc Peters | v 0.11 boot disk problem |
| Dave `geek' Gymer | WARNING (was Re: New afio release) |
| David Gabrius | Re: NT vs Linux (was: Re: truth or dare) |
| David Fenyes | sigsetmask()? (LINUX) |
