[patch] sched: fix scheduling latencies in vgacon.c

Ingo Molnar
2004-09-14T11:32:45Z

[-- Attachment #1: Type: text/plain, Size: 197 bytes --]

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.

Ingo

[-- Attachment #2: fix-latency-vgacon.patch --]
[-- Type: text/plain, Size: 906 bytes --]

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>

--- linux/drivers/video/console/vgacon.c.orig
+++ linux/drivers/video/console/vgacon.c
@@ -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 vgas
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 vgas
vga_wattr(state->vgabase, VGA_AR_ENABLE_DISPLAY, 0);
}
spin_unlock_irq(&vga_lock);
+ lock_kernel();
return 0;
}