summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Shah <amit.shah@redhat.com>2011-09-09 14:30:40 +0530
committerAnthony Liguori <aliguori@us.ibm.com>2011-09-09 12:58:16 -0500
commit3b86b13ab07407fc8c6ac0efbd717fe51df1cad7 (patch)
tree9c5ac2837f9bfd7e1e9ca539c33a77fe3d341665
parent8a7d552cb3684570491a5ecaa8b78818404ed2fb (diff)
downloadqemu-3b86b13ab07407fc8c6ac0efbd717fe51df1cad7.tar.gz
virtio-balloon: Disassociate from the balloon handlers on unplug
Adding a 2nd balloon device after unplugging the first one doesn't work. Also, the 'info balloon' command should indicate an error mentioning no balloon device is registered after unplug. Reproduction steps given by Shaolong Hu: (qemu) info balloon Device 'balloon' has not been activated by the guest (qemu) device_add virtio-balloon-pci,id=balloon1 (qemu) info balloon balloon: actual=4096 (qemu) balloon 2048 (qemu) info balloon balloon: actual=2048 (qemu) device_del balloon1 (qemu) info balloon balloon: actual=4096 (qemu) balloon 2048 (qemu) info balloon balloon: actual=4096 (qemu) device_del balloon1 Device 'balloon1' not found (qemu) device_add virtio-balloon-pci,id=balloon1 Another balloon device already registered Device 'virtio-balloon-pci' could not be initialized (qemu) device_add virtio-balloon-pci,id=balloon2 Another balloon device already registered Device 'virtio-balloon-pci' could not be initialized Reported-by: Shaolong Hu <shu@redhat.com> Signed-off-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--hw/virtio-balloon.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index 072a88a382..5f8f4bdb9f 100644
--- a/hw/virtio-balloon.c
+++ b/hw/virtio-balloon.c
@@ -303,6 +303,8 @@ VirtIODevice *virtio_balloon_init(DeviceState *dev)
void virtio_balloon_exit(VirtIODevice *vdev)
{
VirtIOBalloon *s = DO_UPCAST(VirtIOBalloon, vdev, vdev);
+
+ qemu_remove_balloon_handler(s);
unregister_savevm(s->qdev, "virtio-balloon", s);
virtio_cleanup(vdev);
}