[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    Deadlock in fb and tty
From:       John Tapsell <johnflux () gmail ! com>
Date:       2013-09-11 9:25:53
Message-ID: CAHQ6N+pQpfmG-b_9iv0Ajg5EYPjfEK0=KYcQa0DLVmyN8VKZrQ () mail ! gmail ! com
[Download RAW message or body]

Hi,
  I'm consistently and constantly hitting a deadlock.

console_callback in drivers/tty/vt/vt.c does:  console_lock()  and then calls:
  do_blank_screen, which calls:
    vc->vc_sw->con_blank(..)  which can be a pointer to the function:
      fbcon_blank in video/console/fbcon.c.  This is missing a
WARN_CONSOLE_UNLOCKED.  This calls:
        fbcon_generic_blank which does lock_fb_info(info)

So we have a console_lock() followed by a lock_fb_info(info).

Now if while that is running, we have an ioctl call:

do_fb_ioctl in drivers/video/fbmem.c which does:
               if (!lock_fb_info(info))
                        return -ENODEV;
                console_lock();


So it tries to acquire the same locks in the reverse order.  This
deadlocks consistently for me.

(I'm also curious why I'm hitting this continually, when everyone else
seems to be okay.)

I understand that this is really difficult to fix, but if anyone has
even a suggestion on how to hack it to make it work for me, I'd be
very grateful.

Thank you,

John Tapsell
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic