summaryrefslogtreecommitdiff
path: root/src/mouse.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2014-09-30 09:17:14 -0400
committerKevin O'Connor <kevin@koconnor.net>2014-09-30 09:42:54 -0400
commit12085439561f44107c7d3bea5a333a90ea987643 (patch)
treead350bf1d6813cc7c38b8873838c19ce086242e5 /src/mouse.c
parent67d1fbef0f630e1e823f137d1bae7fa5790bcf4e (diff)
downloadqemu-seabios-12085439561f44107c7d3bea5a333a90ea987643.tar.gz
Revert "Use the extra stack for 16bit USB and PS2 keyboard/mouse commands."
It's not valid to pass a pointer to a stack variable through the stack_hop() call (because the call changes the stack segment). This bug was probably not noticed before because by default (CONFIG_ENTRY_EXTRASTACK) SeaBIOS uses the extra stack on all 16bit entry points, and the internal stack_hop() with that config option is effectively a no-op. This reverts commit d488a7683d90bf8fae7ceb8c3ad9e95fbbd92079. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/mouse.c')
-rw-r--r--src/mouse.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mouse.c b/src/mouse.c
index 92ae921..100255d 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -10,7 +10,7 @@
#include "hw/ps2port.h" // ps2_mouse_command
#include "hw/usb-hid.h" // usb_mouse_command
#include "output.h" // dprintf
-#include "stacks.h" // stack_hop
+#include "stacks.h" // stack_hop_back
#include "util.h" // mouse_init
void
@@ -27,8 +27,8 @@ static int
mouse_command(int command, u8 *param)
{
if (usb_mouse_active())
- return stack_hop(command, (u32)param, usb_mouse_command);
- return stack_hop(command, (u32)param, ps2_mouse_command);
+ return usb_mouse_command(command, param);
+ return ps2_mouse_command(command, param);
}
#define RET_SUCCESS 0x00