mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-28 05:50:37 +00:00
pci: Convert pci_nic_init() to Error to avoid qdev_init()
qdev_init() is deprecated, and will be removed when its callers have been weaned off it. Signed-off-by: Markus Armbruster <armbru@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
75cc7f0183
commit
558ecef292
18
hw/pci/pci.c
18
hw/pci/pci.c
@ -1613,9 +1613,11 @@ static const char * const pci_nic_names[] = {
|
||||
/* Initialize a PCI NIC. */
|
||||
static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
|
||||
const char *default_model,
|
||||
const char *default_devaddr)
|
||||
const char *default_devaddr,
|
||||
Error **errp)
|
||||
{
|
||||
const char *devaddr = nd->devaddr ? nd->devaddr : default_devaddr;
|
||||
Error *err = NULL;
|
||||
PCIBus *bus;
|
||||
int devfn;
|
||||
PCIDevice *pci_dev;
|
||||
@ -1636,8 +1638,13 @@ static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
|
||||
pci_dev = pci_create(bus, devfn, pci_nic_names[i]);
|
||||
dev = &pci_dev->qdev;
|
||||
qdev_set_nic_properties(dev, nd);
|
||||
if (qdev_init(dev) < 0)
|
||||
|
||||
object_property_set_bool(OBJECT(dev), true, "realized", &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
object_unparent(OBJECT(dev));
|
||||
return NULL;
|
||||
}
|
||||
return pci_dev;
|
||||
}
|
||||
|
||||
@ -1645,14 +1652,17 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
|
||||
const char *default_model,
|
||||
const char *default_devaddr)
|
||||
{
|
||||
Error *err = NULL;
|
||||
PCIDevice *res;
|
||||
|
||||
if (qemu_show_nic_models(nd->model, pci_nic_models))
|
||||
exit(0);
|
||||
|
||||
res = pci_nic_init(nd, rootbus, default_model, default_devaddr);
|
||||
if (!res)
|
||||
res = pci_nic_init(nd, rootbus, default_model, default_devaddr, &err);
|
||||
if (!res) {
|
||||
error_report_err(err);
|
||||
exit(1);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user