pci: Merge pci_nic_init() into pci_nic_init_nofail()

The error reporting in pci_nic_init() is quite erratic: Some errors
are printed directly with error_report(), and some are passed back
to the caller pci_nic_init_nofail() via an Error pointer.
Since pci_nic_init() is only used by pci_nic_init_nofail(), the
functions can be simply merged to clean up this inconsistency.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
Thomas Huth 2015-04-28 12:50:07 +02:00 committed by Michael S. Tsirkin
parent 7824df3889
commit 51f7cb974b
1 changed files with 14 additions and 29 deletions

View File

@ -1611,28 +1611,32 @@ static const char * const pci_nic_names[] = {
};
/* Initialize a PCI NIC. */
static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
PCIDevice *pci_nic_init_nofail(NICInfo *nd, PCIBus *rootbus,
const char *default_model,
const char *default_devaddr,
Error **errp)
const char *default_devaddr)
{
const char *devaddr = nd->devaddr ? nd->devaddr : default_devaddr;
Error *err = NULL;
PCIBus *bus;
int devfn;
PCIDevice *pci_dev;
DeviceState *dev;
int devfn;
int i;
if (qemu_show_nic_models(nd->model, pci_nic_models)) {
exit(0);
}
i = qemu_find_nic_model(nd, pci_nic_models, default_model);
if (i < 0)
return NULL;
if (i < 0) {
exit(1);
}
bus = pci_get_bus_devfn(&devfn, rootbus, devaddr);
if (!bus) {
error_report("Invalid PCI device address %s for device %s",
devaddr, pci_nic_names[i]);
return NULL;
exit(1);
}
pci_dev = pci_create(bus, devfn, pci_nic_names[i]);
@ -1641,31 +1645,12 @@ static PCIDevice *pci_nic_init(NICInfo *nd, PCIBus *rootbus,
object_property_set_bool(OBJECT(dev), true, "realized", &err);
if (err) {
error_propagate(errp, err);
error_report_err(err);
object_unparent(OBJECT(dev));
return NULL;
}
return pci_dev;
}
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, &err);
if (!res) {
if (err) {
error_report_err(err);
}
exit(1);
}
return res;
return pci_dev;
}
PCIDevice *pci_vga_init(PCIBus *bus)