Re: [PATCH 1/2] lockdep missing barrier()
Andrew Morton <[email protected]>
| Newsgroups | gmane.linux.systemtap,gmane.linux.kernel,gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 16 Jan 2007 12:56:24 -0500 Mathieu Desnoyers <[email protected]> wrote: > This patch adds a barrier() to lockdep.c lockdep_recursion updates. This > variable behaves like the preemption count and should therefore use similar > memory barriers. > > This patch applies on 2.6.20-rc4-git3. > > Signed-off-by: Mathieu Desnoyers <[email protected]> > > --- a/kernel/lockdep.c > +++ b/kernel/lockdep.c > @@ -166,12 +166,14 @@ static struct list_head chainhash_table[CHAINHASH_SIZE]; > void lockdep_off(void) > { > current->lockdep_recursion++; > + barrier(); > } > > EXPORT_SYMBOL(lockdep_off); > > void lockdep_on(void) > { > + barrier(); > current->lockdep_recursion--; > } I am allergic to undocumented barriers. It is often unobvious what the barrier is supposed to protect against, yielding mystifying code. This is one such case. Please add code comments.