diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2014-09-30 09:17:14 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2014-09-30 09:42:54 -0400 |
commit | 12085439561f44107c7d3bea5a333a90ea987643 (patch) | |
tree | ad350bf1d6813cc7c38b8873838c19ce086242e5 /src/kbd.c | |
parent | 67d1fbef0f630e1e823f137d1bae7fa5790bcf4e (diff) | |
download | seabios-hppa-12085439561f44107c7d3bea5a333a90ea987643.zip seabios-hppa-12085439561f44107c7d3bea5a333a90ea987643.tar.gz seabios-hppa-12085439561f44107c7d3bea5a333a90ea987643.tar.bz2 |
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/kbd.c')
-rw-r--r-- | src/kbd.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -11,7 +11,7 @@ #include "hw/ps2port.h" // ps2_kbd_command #include "hw/usb-hid.h" // usb_kbd_command #include "output.h" // debug_enter -#include "stacks.h" // stack_hop +#include "stacks.h" // yield #include "string.h" // memset #include "util.h" // kbd_init @@ -117,8 +117,8 @@ static int kbd_command(int command, u8 *param) { if (usb_kbd_active()) - return stack_hop(command, (u32)param, usb_kbd_command); - return stack_hop(command, (u32)param, ps2_kbd_command); + return usb_kbd_command(command, param); + return ps2_kbd_command(command, param); } // read keyboard input |