summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-06-06 13:21:05 +0200
committerGerd Hoffmann <kraxel@redhat.com>2017-06-23 11:51:50 +0200
commit6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d (patch)
tree216f09b0c312cabea6f28a927bc95633560b233d
parent954ee55bd528a97347f19f815e00f1e375f82f0a (diff)
downloadfocaccia-qemu-6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d.tar.gz
focaccia-qemu-6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d.zip
ps2: reset queue in ps2_reset_keyboard
When the guest resets the keyboard also clear the queue.  It is highly
unlikely that the guest is still interested in the events stuck in the
queue, and it avoids confusing the guest in case the queue is full and
the ACK can't be queued up.

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1372583
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20170606112105.13331-4-kraxel@redhat.com
-rw-r--r--hw/input/ps2.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/hw/input/ps2.c b/hw/input/ps2.c
index 2416b58cc0..3ba05efd06 100644
--- a/hw/input/ps2.c
+++ b/hw/input/ps2.c
@@ -740,6 +740,7 @@ static void ps2_reset_keyboard(PS2KbdState *s)
     trace_ps2_reset_keyboard(s);
     s->scan_enabled = 1;
     s->scancode_set = 2;
+    ps2_reset_queue(&s->common);
     ps2_set_ledstate(s, 0);
 }