| Date | Fri, 11 Dec 2009 08:35:21 -0800 | From | "Paul E. McKenney" <> | Subject | Re: [patch 0/9] Fix various __task_cred related invalid RCU assumptions |
| |
On Fri, Dec 11, 2009 at 01:39:06PM +0000, David Howells wrote: > Thomas Gleixner <tglx@linutronix.de> wrote: > > > While auditing the read_lock(&tasklist_lock) sites for a possible > > conversion to rcu-read_lock() I stumbled over an unprotected user of > > __task_cred in kernel/sys.c > > I'm sure last time I looked, spinlock primitives implied RCU read locks. > Maybe I was mistaken or maybe it's changed. Whatever, good catch, Thomas!
It did indeed change with the split of the old synchronize_kernel() primitive into the synchronize_rcu() and synchronize_sched() primitives in 2.6.12 -- after this point, synchronize_rcu() was only guaranteed to respect "real" rcu_read_lock()-base critical sections. But actual failures would not show up until PREEMPT_RCU was introduced into 2.6.25.
The -rt effort rooted out a bunch of these sorts of problems, but we clearly missed a few.
Thanx, Paul
|