aboutsummaryrefslogtreecommitdiff
path: root/hw/vmmouse.c
diff options
context:
space:
mode:
authorGerhard Wiesinger <lists@wiesinger.com>2012-01-25 21:04:14 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2012-02-01 16:24:38 -0600
commit069ab0eb8a46bc4ff6f4d4d81bf037d3441347da (patch)
tree27a1fe492b88525fa3fbd51acd96cbef85028b92 /hw/vmmouse.c
parent93dd748b789202af4f5be75412c58ee1ed481b29 (diff)
downloadqemu-069ab0eb8a46bc4ff6f4d4d81bf037d3441347da.zip
qemu-069ab0eb8a46bc4ff6f4d4d81bf037d3441347da.tar.gz
qemu-069ab0eb8a46bc4ff6f4d4d81bf037d3441347da.tar.bz2
hw/vmmouse.c: Disable vmmouse after reboot
Bugfix after reboot when vmmouse was enabled and another OS which uses e.g. PS/2 mouse. Details: When a guest activated the vmmouse followed by a reboot the vmmouse was still enabled and the PS/2 mouse was therefore unsusable. When another guest is then booted without vmmouse support (e.g. PS/2 mouse) the mouse is not working. Reason is that VMMouse has priority and disables all other mouse entities and therefore must be disabled on reset. Testscenario: 1.) Boot e.g. OS with VMMouse support (e.g. Windows with VMMouse tools) 2.) reboot 3.) Boot e.g. OS without VMMouse support (e.g. DOS) => PS/2 mouse doesn't work any more. Fixes that issue. Testscenario 2 by Jan Kiszka <jan.kiszka@siemens.com>: Confirm that this patch fixes a real issue. Setup: qemu.git, opensuse 11.4 guest, SDL graphic, system_reset while guest is using the vmmouse. Without the patch, the vmmouse become unusable after the reboot. Also, the mouse stays in absolute mode even before X starts again. Fixed by: Disabling the vmmouse in its reset handler. Tested-by: Andreas F=E4rber <afaerber@suse.de> Signed-off-by: Gerhard Wiesinger <lists@wiesinger.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/vmmouse.c')
-rw-r--r--hw/vmmouse.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/vmmouse.c b/hw/vmmouse.c
index da2ea32..5c80bc4 100644
--- a/hw/vmmouse.c
+++ b/hw/vmmouse.c
@@ -254,6 +254,8 @@ static void vmmouse_reset(DeviceState *d)
s->status = 0xffff;
s->queue_size = VMMOUSE_QUEUE_SIZE;
+
+ vmmouse_disable(s);
}
static int vmmouse_initfn(ISADevice *dev)