qdev/compat: virtio-blk-pci 0.10 compatibility.
Add class property to virtio-blk-pci allowing to specify the PCI class. Add compat property to pc-0.10 to set the old PCI class. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
ccb63de38e
commit
ab73ff29ce
5
hw/pc.c
5
hw/pc.c
@ -1525,6 +1525,11 @@ static QEMUMachine pc_machine_v0_10 = {
|
|||||||
.init = pc_init_pci,
|
.init = pc_init_pci,
|
||||||
.max_cpus = 255,
|
.max_cpus = 255,
|
||||||
.compat_props = (CompatProperty[]) {
|
.compat_props = (CompatProperty[]) {
|
||||||
|
{
|
||||||
|
.driver = "virtio-blk-pci",
|
||||||
|
.property = "class",
|
||||||
|
.value = stringify(PCI_CLASS_STORAGE_OTHER),
|
||||||
|
},
|
||||||
{ /* end of list */ }
|
{ /* end of list */ }
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -86,6 +86,7 @@ typedef struct {
|
|||||||
PCIDevice pci_dev;
|
PCIDevice pci_dev;
|
||||||
VirtIODevice *vdev;
|
VirtIODevice *vdev;
|
||||||
uint32_t addr;
|
uint32_t addr;
|
||||||
|
uint32_t class_code;
|
||||||
} VirtIOPCIProxy;
|
} VirtIOPCIProxy;
|
||||||
|
|
||||||
/* virtio device */
|
/* virtio device */
|
||||||
@ -435,7 +436,13 @@ static void virtio_blk_init_pci_with_class(PCIDevice *pci_dev,
|
|||||||
|
|
||||||
static void virtio_blk_init_pci(PCIDevice *pci_dev)
|
static void virtio_blk_init_pci(PCIDevice *pci_dev)
|
||||||
{
|
{
|
||||||
virtio_blk_init_pci_with_class(pci_dev, PCI_CLASS_STORAGE_SCSI);
|
VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev);
|
||||||
|
|
||||||
|
if (proxy->class_code != PCI_CLASS_STORAGE_SCSI &&
|
||||||
|
proxy->class_code != PCI_CLASS_STORAGE_OTHER)
|
||||||
|
proxy->class_code = PCI_CLASS_STORAGE_SCSI;
|
||||||
|
|
||||||
|
virtio_blk_init_pci_with_class(pci_dev, proxy->class_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void virtio_blk_init_pci_0_10(PCIDevice *pci_dev)
|
static void virtio_blk_init_pci_0_10(PCIDevice *pci_dev)
|
||||||
@ -497,6 +504,14 @@ static PCIDeviceInfo virtio_info[] = {
|
|||||||
.qdev.name = "virtio-blk-pci",
|
.qdev.name = "virtio-blk-pci",
|
||||||
.qdev.size = sizeof(VirtIOPCIProxy),
|
.qdev.size = sizeof(VirtIOPCIProxy),
|
||||||
.init = virtio_blk_init_pci,
|
.init = virtio_blk_init_pci,
|
||||||
|
.qdev.props = (Property[]) {
|
||||||
|
{
|
||||||
|
.name = "class",
|
||||||
|
.info = &qdev_prop_hex32,
|
||||||
|
.offset = offsetof(VirtIOPCIProxy, class_code),
|
||||||
|
},
|
||||||
|
{/* end of list */}
|
||||||
|
},
|
||||||
},{
|
},{
|
||||||
.qdev.name = "virtio-net-pci",
|
.qdev.name = "virtio-net-pci",
|
||||||
.qdev.size = sizeof(VirtIOPCIProxy),
|
.qdev.size = sizeof(VirtIOPCIProxy),
|
||||||
|
Loading…
Reference in New Issue
Block a user