aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/pc.c6
-rw-r--r--hw/virtio-balloon.c18
-rw-r--r--hw/virtio-balloon.h2
3 files changed, 12 insertions, 14 deletions
diff --git a/hw/pc.c b/hw/pc.c
index 12065baf6c..6c8bb1bbd6 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -33,7 +33,6 @@
#include "boards.h"
#include "monitor.h"
#include "fw_cfg.h"
-#include "virtio-balloon.h"
#include "virtio-console.h"
#include "hpet_emul.h"
#include "watchdog.h"
@@ -1141,8 +1140,9 @@ static void pc_init1(ram_addr_t ram_size,
}
/* Add virtio balloon device */
- if (pci_enabled)
- virtio_balloon_init(pci_bus);
+ if (pci_enabled) {
+ pci_create_simple(pci_bus, -1, "virtio-balloon");
+ }
/* Add virtio console devices */
if (pci_enabled) {
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index b8f9184e11..7fa7e47f7f 100644
--- a/hw/virtio-balloon.c
+++ b/hw/virtio-balloon.c
@@ -169,17 +169,11 @@ static int virtio_balloon_load(QEMUFile *f, void *opaque, int version_id)
return 0;
}
-void *virtio_balloon_init(PCIBus *bus)
+static void virtio_balloon_init(PCIDevice *pci_dev)
{
VirtIOBalloon *s;
- PCIDevice *d;
- d = pci_register_device(bus, "virtio-balloon", sizeof(VirtIOBalloon),
- -1, NULL, NULL);
- if (!d)
- return NULL;
-
- s = (VirtIOBalloon *)virtio_init_pci(d, "virtio-balloon",
+ s = (VirtIOBalloon *)virtio_init_pci(pci_dev, "virtio-balloon",
PCI_VENDOR_ID_REDHAT_QUMRANET,
PCI_DEVICE_ID_VIRTIO_BALLOON,
PCI_VENDOR_ID_REDHAT_QUMRANET,
@@ -197,6 +191,12 @@ void *virtio_balloon_init(PCIBus *bus)
qemu_add_balloon_handler(virtio_balloon_to_target, s);
register_savevm("virtio-balloon", -1, 1, virtio_balloon_save, virtio_balloon_load, s);
+}
- return &s->vdev;
+static void virtio_balloon_register_devices(void)
+{
+ pci_qdev_register("virtio-balloon", sizeof(VirtIOBalloon),
+ virtio_balloon_init);
}
+
+device_init(virtio_balloon_register_devices)
diff --git a/hw/virtio-balloon.h b/hw/virtio-balloon.h
index c71f9709bf..9a0d119e42 100644
--- a/hw/virtio-balloon.h
+++ b/hw/virtio-balloon.h
@@ -37,6 +37,4 @@ struct virtio_balloon_config
uint32_t actual;
};
-void *virtio_balloon_init(PCIBus *bus);
-
#endif