diff options
author | Alan Cox <alan@linux.intel.com> | 2013-01-25 04:28:15 +0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-02-08 06:02:40 +0400 |
commit | 50e244cc793d511b86adea24972f3a7264cae114 (patch) | |
tree | de59e5f228a256ad09521524639e1b5b6e49b8cc /include/linux/console.h | |
parent | 84b603abd23300df8ee5fb1c23c83634c2aaedea (diff) | |
download | linux-50e244cc793d511b86adea24972f3a7264cae114.tar.xz |
fb: rework locking to fix lock ordering on takeover
Adjust the console layer to allow a take over call where the caller
already holds the locks. Make the fb layer lock in order.
This is partly a band aid, the fb layer is terminally confused about the
locking rules it uses for its notifiers it seems.
[akpm@linux-foundation.org: remove stray non-ascii char, tidy comment]
[akpm@linux-foundation.org: export do_take_over_console()]
[airlied: cleanup another non-ascii char]
Signed-off-by: Alan Cox <alan@linux.intel.com>
Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: stable <stable@vger.kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/linux/console.h')
-rw-r--r-- | include/linux/console.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/console.h b/include/linux/console.h index dedb082fe50f..4ef4307dfb82 100644 --- a/include/linux/console.h +++ b/include/linux/console.h @@ -78,6 +78,7 @@ int con_is_bound(const struct consw *csw); int register_con_driver(const struct consw *csw, int first, int last); int unregister_con_driver(const struct consw *csw); int take_over_console(const struct consw *sw, int first, int last, int deflt); +int do_take_over_console(const struct consw *sw, int first, int last, int deflt); void give_up_console(const struct consw *sw); #ifdef CONFIG_HW_CONSOLE int con_debug_enter(struct vc_data *vc); |