Re: [PATCH] fbmem: fix race condition between register_framebuffer()and fb_open()

From: Fabio Erculiani
Date: Wed May 25 2011 - 14:52:23 EST


On Wed, May 25, 2011 at 8:46 PM, Bruno PrÃmont
<bonbons@xxxxxxxxxxxxxxxxx> wrote:
> On Wed, 25 May 2011 Fabio Erculiani <lxnay@xxxxxxxxxxx> wrote:
>> I'm not a fbdev expert. So I leave the real fix to real men ( ;-) ).
>> It is causing deadlock during boot, so I would consider it quite critical.
>> Users using any fb driver will get into troubles.
>> The workaround is to boot with vga=normal.
>
> What is your system doing during boot? I've never seen it here but maybe
> my boot sequence is too simple.

I'm using vesafb and vga=791. It is quite simple to reproduce.
Also see: http://bugs.gentoo.org/show_bug.cgi?id=368109

>
> Could you tell if it deadlocks before init gets started or afterwards,
> which fb drivers (and extra kernel patches if any) are in use.

Exactly when register_framebuffer() is called, in my case, early in
the boot phase, before init.

>
> If you have the complete backtrace of the deadlocked processes it would
> help getting a better idea of what is affected and how (and why just the
> framebuffer's lock is not causing trouble with earlier kernel versions).

Because that code got a HUGE rewrite in the latest cycle, where
registration_lock has been introduce.
Just make a diff between 2.6.38 and 2.6.39. It will be easy to see
that SO MANY lines have changed ;-)
Anyway, since I'm out of office these days, I won't be able to send
you the traceback this week, but since so many people have run into
it, I guess it's fairly simple to reproduce.

>
> Bruno
>
>
>> Cheers,
>



--
Fabio Erculiani
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/