aboutsummaryrefslogtreecommitdiff
path: root/hw/input
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 /hw/input
parent954ee55bd528a97347f19f815e00f1e375f82f0a (diff)
downloadqemu-6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d.zip
qemu-6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d.tar.gz
qemu-6e24ee0c1e4b6c0c9c748acab77ecd113c942a4d.tar.bz2
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
Diffstat (limited to 'hw/input')
-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 2416b58..3ba05ef 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);
}