OSDN Git Service

ps2: Fix mouse stream corruption due to lost data
authorGeoffrey McRae <geoff@hostfission.com>
Mon, 7 May 2018 13:13:12 +0000 (23:13 +1000)
committerGerd Hoffmann <kraxel@redhat.com>
Tue, 15 May 2018 09:31:33 +0000 (11:31 +0200)
commit7abe7eb29494b4e4a11ec99ae5623083409a2f1e
treeaa098e5265093a38774a3c2d54a618140c128cf3
parent143c04c7e0639e53086519592ead15d2556bfbf2
ps2: Fix mouse stream corruption due to lost data

This fixes an issue by adding bounds checking to multi-byte packets
where the PS/2 mouse data stream may become corrupted due to data being
discarded when the PS/2 ringbuffer is full.

Interrupts for Multi-byte responses are postponed until the final byte
has been queued.

These changes fix a bug where windows guests drop the mouse device
entirely requring the guest to be restarted.

Signed-off-by: Geoffrey McRae <geoff@hostfission.com>
Message-Id: <20180507150310.2FEA0381924@moya.office.hostfission.com>

[ kraxel: codestyle fixes ]

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/input/ps2.c
include/hw/input/ps2.h