ps2: set ps/2 output buffer size as the same as kernel
commit2858ab09e6f708e381fc1a1cc87e747a690c4884
authorGonglei <arei.gonglei@huawei.com>
Thu, 24 Apr 2014 12:06:19 +0000 (24 20:06 +0800)
committerGerd Hoffmann <kraxel@redhat.com>
Fri, 16 May 2014 06:30:11 +0000 (16 08:30 +0200)
tree0604a5a4221cff1c0eff9e5e54a4e03506baf16e
parent1a381811b495651ddfc2b50d7c8cfaaf375816b0
ps2: set ps/2 output buffer size as the same as kernel

According to the PS/2 Mouse/Keyboard Protocol, the keyboard outupt buffer size
is 16 bytes. And the PS2_QUEUE_SIZE 256 was introduced in Qemu from the very
beginning.

When I started a  redhat5.6 32bit guest, meanwhile tapped the keyboard as quickly as
possible, the screen would show me "i8042.c: No controller found". As a result,
I couldn't use the keyboard in the VNC client.

Previous discussion about the issue in maillist:
http://thread.gmane.org/gmane.comp.emulators.qemu/43294/focus=47180

This patch has been tested on redhat5.6 32-bit/suse11sp3 64-bit guests.
More easy meathod to reproduce:
1.boot a guest with libvirt.
2.connect to VNC client.
3.as you see the BIOS, bootloader, Linux booting, run the follow simply shell script:
for((i=0;i<10000000;i++)) do virsh send-key redhat5.6 KEY_A; done

Actual results:
dmesg show "i8042.c: No controller found." And the keyboard is out of work.

Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/input/ps2.c