Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.2:Test
kvm
seabios-preXX-enable-irq-in-spin-functions.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File seabios-preXX-enable-irq-in-spin-functions.patch of Package kvm
commit 68c51390e3c78ed4a5b012d9097007f7cb0b8bbe Author: Kevin O'Connor <kevin@koconnor.net> Date: Sat Mar 13 22:23:44 2010 -0500 Enable irqs in kbd/clock calls that caller might "spin" on. Some old programs will spin on a clock/keyboard call with irqs disabled. They assume the BIOS will enable irqs and allow key events and clock events to occur. So, enable irqs in those functions that a caller might "spin" on. Index: qemu-kvm-0.12.3/roms/seabios/src/clock.c =================================================================== --- qemu-kvm-0.12.3.orig/roms/seabios/src/clock.c +++ qemu-kvm-0.12.3/roms/seabios/src/clock.c @@ -228,6 +228,7 @@ timer_setup(void) static void handle_1a00(struct bregs *regs) { + yield(); u32 ticks = GET_BDA(timer_counter); regs->cx = ticks >> 16; regs->dx = ticks; Index: qemu-kvm-0.12.3/roms/seabios/src/kbd.c =================================================================== --- qemu-kvm-0.12.3.orig/roms/seabios/src/kbd.c +++ qemu-kvm-0.12.3/roms/seabios/src/kbd.c @@ -73,6 +73,7 @@ enqueue_key(u8 scan_code, u8 ascii_code) static void dequeue_key(struct bregs *regs, int incr, int extended) { + yield(); u16 buffer_head; u16 buffer_tail; for (;;) { @@ -126,6 +127,7 @@ handle_1601(struct bregs *regs) static void handle_1602(struct bregs *regs) { + yield(); regs->al = GET_BDA(kbd_flag0); } @@ -184,6 +186,7 @@ handle_1611(struct bregs *regs) static void handle_1612(struct bregs *regs) { + yield(); regs->al = GET_BDA(kbd_flag0); regs->ah = ((GET_BDA(kbd_flag1) & ~(KF2_RCTRL|KF2_RALT)) | (GET_BDA(kbd_flag2) & (KF2_RCTRL|KF2_RALT)));
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor