Messages in this thread | | | Date | Tue, 4 May 2010 10:46:01 -0500 | From | "Serge E. Hallyn" <> | Subject | Re: [PATCH] KEYS: Fix RCU handling in key_gc_keyring() |
| |
Quoting David Howells (dhowells@redhat.com): > key_gc_keyring() needs to either hold the RCU read lock or hold the keyring > semaphore if it's going to scan the keyring's list. Given that it only needs > to read the key list, and it's doing so under a spinlock, the RCU read lock is > the thing to use. > > Furthermore, the RCU check added in e7b0a61b7929632d36cf052d9e2820ef0a9c1bfe is > incorrect as holding the spinlock on key_serial_lock is not grounds for > assuming a keyring's pointer list can be read safely. Instead, a simple > rcu_dereference() inside of the previously mentioned RCU read lock is what we > want. > > Reported-by: Serge E. Hallyn <serue@us.ibm.com>
You're obviously being far too kind. In apparent trend for last night I missed the lack of locking here.
> Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
thanks, -serge
| |