diff options
author | Arnd Bergmann <arnd@arndb.de> | 2010-06-01 16:53:03 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-10 16:47:43 -0400 |
commit | 83ceb67d7dfe6aedf0e47dd6887b7b3c753542b2 (patch) | |
tree | ae45ce855037966218ebcf61c9290117d29a2cb0 /drivers | |
parent | 64ba3dc3143d94bbe935722aa17fa516b232bc83 (diff) |
tty: fix console_sem lock order
vgacon_do_font_op releases and reacquires the BTM while holding
console_sem. This violates the rule that BTM has to be the
outer lock whenever we hold both.
There does not seem to be any reason to give up the BTM here,
so just stop doing that.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/console/vgacon.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c index 71970057c118..54e32c513610 100644 --- a/drivers/video/console/vgacon.c +++ b/drivers/video/console/vgacon.c | |||
@@ -1108,7 +1108,6 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512) | |||
1108 | charmap += 4 * cmapsz; | 1108 | charmap += 4 * cmapsz; |
1109 | #endif | 1109 | #endif |
1110 | 1110 | ||
1111 | tty_unlock(); | ||
1112 | spin_lock_irq(&vga_lock); | 1111 | spin_lock_irq(&vga_lock); |
1113 | /* First, the Sequencer */ | 1112 | /* First, the Sequencer */ |
1114 | vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x1); | 1113 | vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x1); |
@@ -1192,7 +1191,6 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512) | |||
1192 | vga_wattr(state->vgabase, VGA_AR_ENABLE_DISPLAY, 0); | 1191 | vga_wattr(state->vgabase, VGA_AR_ENABLE_DISPLAY, 0); |
1193 | } | 1192 | } |
1194 | spin_unlock_irq(&vga_lock); | 1193 | spin_unlock_irq(&vga_lock); |
1195 | tty_lock(); | ||
1196 | return 0; | 1194 | return 0; |
1197 | } | 1195 | } |
1198 | 1196 | ||