Re: [PATCH 1/3] printk: Release console_sem after logbuf_lock

Andrew Morton
2011-06-09T21:07:44Z

On Thu, 09 Jun 2011 22:54:43 +0200
Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

> On Thu, 2011-06-09 at 22:27 +0200, Ingo Molnar wrote:
>
> > > > @@ -1271,8 +1273,8 @@ void console_unlock(void)
> > > > if (unlikely(exclusive_console))
> > > > exclusive_console = NULL;
> > > >
> > > > - up(&console_sem);
> > > > spin_unlock_irqrestore(&logbuf_lock, flags);
> > > > + up(&console_sem);
> > > > if (wake_klogd)
> > > > wake_up_klogd();
> > > > }
> > >
> > > I have a horrible feeling that I put the up() inside logbuf_lock for
> > > Special And Cunning Reasons. But I'm struggling to work out what they
> > > might have been and my archives only go back to October 2000(!).
> > >
> > > Hate it when that happens.
> >
> > Heh, here's what i told Peter two days ago when i saw that chunk:
> >
> > => Subject: printk: Release console_sem after logbuf_lock
> > => i have some vague memories about some sort of complication in that area ...
> > => but don't remember the specifics
> > => only a 'there be dragons' mental marker
>
> Right, my reply was that I couldn't convince myself unlock order could
> make a difference, but clearly I can easily have missed something
> subtle.

I wish I could find the darned patch. I have a file here
no-console-lock-2.patch which was last diffed on October 7, 1999 but it
has no changelog :(

But this:
http://lkml.indiana.edu/hypermail/linux/kernel/0109.2/0127.html is Sep
2001 and I have an earlier (unchangelogged) no-console-lock.patch diffed
against 2.4.2 in March 2001.

It's odd that the patch (and changelog) don't appear in my lkml
archives. Sigh, http://www.youtube.com/watch?v=oO3YmT2d-8k