diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-03-01 12:31:57 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-03-01 12:31:57 -0500 |
commit | 4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5 (patch) | |
tree | 53911bc0800e8390b78a290dcc8e468c542d7494 /src/mouse.c | |
parent | 11ac162bf1536d4f2eaac9fedec1eec746b4512d (diff) | |
download | qemu-seabios-4ebc0b70305c6d6a14eb03c355fda0d8dc829bc5.tar.gz |
Consistently disable irqs at start of each assembler entry point.
Always disable irqs at start of each entry point.
Be consistent with clearing direction flag after disabling interrupts.
Diffstat (limited to 'src/mouse.c')
-rw-r--r-- | src/mouse.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mouse.c b/src/mouse.c index 2f997c1..e6abbb9 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -313,8 +313,9 @@ process_mouse(u8 data) u32 func = GET_EBDA2(ebda_seg, far_call_pointer); - irq_enable(); asm volatile( + "sti\n" + "pushl %0\n" "pushw %w1\n" // status "pushw %w2\n" // X @@ -322,12 +323,13 @@ process_mouse(u8 data) "pushw $0\n" // Z "lcallw *8(%%esp)\n" "addl $12, %%esp\n" + + "cli\n" "cld\n" : : "r"(func), "r"(status), "r"(X), "r"(Y) : "cc" ); - irq_disable(); } // INT74h : PS/2 mouse hardware interrupt |