[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH, RFC] Allow adding empty SCSI controllers
From: |
Wolfgang Mauerer |
Subject: |
[Qemu-devel] [PATCH, RFC] Allow adding empty SCSI controllers |
Date: |
Tue, 15 Dec 2009 18:30:25 +0100 |
User-agent: |
Thunderbird 2.0.0.23 (X11/20090817) |
Hi Gerd,
in commit 5b684b5a56e81f6f, you introduced an explicit check
to prevent adding SCSI controllers without attached disks
to the system. Is there any other method to introduce
disk-less controllers into the system? If not, I'd suggest
to remove the check (patch is attached) -- there are some
situations when you want empty SCSI controllers, for instance for
the libvirt hotplug/remove framework currently under development
(see http://article.gmane.org/gmane.comp.emulators.libvirt/19043)
Thanks, Wolfgang
commit c827742224b9a3a0d9dad0ce36c7e59c1a796ec1
Author: Wolfgang Mauerer <address@hidden>
Date: Tue Dec 15 18:06:19 2009 +0100
Revert "hotplug: fix "pci_add storage if=scsi""
This reverts commit 5b684b5a56e81f6f88234952fe8ed68010c36e19, and
also includes some manual adaptions. There are some cases
where addding an empty SCSI controller to a system makes
sense, so we should not prohibit this option.
Signed-off-by: Wolfgang Mauerer <address@hidden>
diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c
index 8b8a80b..eee206b 100644
--- a/hw/lsi53c895a.c
+++ b/hw/lsi53c895a.c
@@ -2103,9 +2103,7 @@ static int lsi_scsi_init(PCIDevice *dev)
lsi_soft_reset(s);
scsi_bus_new(&s->bus, &dev->qdev, 1, LSI_MAX_DEVS, lsi_command_complete);
- if (!dev->qdev.hotplugged) {
- scsi_bus_legacy_handle_cmdline(&s->bus);
- }
+ scsi_bus_legacy_handle_cmdline(&s->bus);
vmstate_register(-1, &vmstate_lsi_scsi, s);
return 0;
}
diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c
index 6e42776..075be31 100644
--- a/hw/pci-hotplug.c
+++ b/hw/pci-hotplug.c
@@ -183,14 +183,10 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
switch (type) {
case IF_SCSI:
- if (!dinfo) {
- monitor_printf(mon, "scsi requires a backing file/device.\n");
- return NULL;
- }
dev = pci_create(bus, devfn, "lsi53c895a");
if (qdev_init(&dev->qdev) < 0)
dev = NULL;
- if (dev) {
+ if (dev && dinfo) {
if (scsi_hot_add(&dev->qdev, dinfo, 0) != 0) {
qdev_unplug(&dev->qdev);
dev = NULL;
@@ -204,12 +200,15 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
}
dev = pci_create(bus, devfn, "virtio-blk-pci");
qdev_prop_set_drive(&dev->qdev, "drive", dinfo);
- if (qdev_init(&dev->qdev) < 0)
- dev = NULL;
break;
default:
dev = NULL;
}
+ if (!dev)
+ return NULL;
+ if (dinfo && qdev_init(&dev->qdev) < 0)
+ return NULL;
+
return dev;
}
- [Qemu-devel] [PATCH, RFC] Allow adding empty SCSI controllers,
Wolfgang Mauerer <=