]> git.hungrycats.org Git - linux/commitdiff
[PATCH] sched: fix scheduling latencies in vgacon.c
authorIngo Molnar <mingo@elte.hu>
Sat, 8 Jan 2005 05:53:06 +0000 (21:53 -0800)
committerLinus Torvalds <torvalds@evo.osdl.org>
Sat, 8 Jan 2005 05:53:06 +0000 (21:53 -0800)
This patch fixes scheduling latencies in vgacon_do_font_op().  The code is
protected by vga_lock already so it's safe to drop (and re-acquire) the
BKL.

Has been tested in the -VP patchset.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/video/console/vgacon.c

index 61181b2d7a19554037d6404eb34e5331c6ec67a2..3d8388348d401b7c3a430ff0ef8627b89481e89e 100644 (file)
@@ -49,6 +49,7 @@
 #include <linux/spinlock.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
+#include <linux/smp_lock.h>
 #include <video/vga.h>
 #include <asm/io.h>
 
@@ -763,6 +764,7 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512)
                charmap += 4 * cmapsz;
 #endif
 
+       unlock_kernel();
        spin_lock_irq(&vga_lock);
        /* First, the Sequencer */
        vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x1);
@@ -848,6 +850,7 @@ static int vgacon_do_font_op(struct vgastate *state,char *arg,int set,int ch512)
                vga_wattr(state->vgabase, VGA_AR_ENABLE_DISPLAY, 0);    
        }
        spin_unlock_irq(&vga_lock);
+       lock_kernel();
        return 0;
 }