diff --git a/kernel/keyboard.c b/kernel/keyboard.c index 3ac5c63..b908902 100644 --- a/kernel/keyboard.c +++ b/kernel/keyboard.c @@ -360,11 +360,12 @@ static void kbd_process(unsigned char scode) set_leds(); } break; + default: + if (press) + cur_ntty->recvbuf(cur_ntty, map_key(code)); } // inputdriver_send_event(FALSE /*mouse*/, page, code, press, 0); - if (press) - cur_ntty->recvbuf(cur_ntty, map_key(code)); } kbd_state = 0; @@ -513,7 +514,8 @@ void ps2_tty_recvbuf(NTTY *tty, u32 key) break; default: - while (xchg(&kbdlock, 1) == 1); + while (xchg(&kbdlock, 1) == 1) + sys_yield(); if ((key & 0xff) == 0) return; if (kbd->len == TTY_IN_BYTES - 1)