pci: Merge pci_nic_init() into pci_nic_init_nofail()
PATCH 1/1 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.
--- hw/pci/pci.c | 43 ++++++++++++++----------------------------- 1 file changed, 14 insertions(+), 29 deletions(-)
hw/pci/pci.c +14 -29
@@ -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)
Signature · 1 line
1.8.3.1
Quoted 10 lines · Thomas Huth
The error reporting in
pci_nic_init()is quite erratic: Some errors are printed directly witherror_report(), and some are passed back to the callerpci_nic_init_nofail()via an Error pointer. Sincepci_nic_init()is only used bypci_nic_init_nofail(), the functions can be simply merged to clean up this inconsistency.Signed-off-by Thomas Huth <[email protected]>--- hw/pci/pci.c | 43 ++++++++++++++----------------------------- 1 file changed, 14 insertions(+), 29 deletions(-)
I agree that, for a _nofail function, it makes sense to remove the Error** altogether...
Paolo
Quoted 80 lines
hw/pci/pci.c +14
-29@@ -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)
Quoted 7 lines · Thomas Huth
The error reporting in
pci_nic_init()is quite erratic: Some errors are printed directly witherror_report(), and some are passed back to the callerpci_nic_init_nofail()via an Error pointer. Sincepci_nic_init()is only used bypci_nic_init_nofail(), the functions can be simply merged to clean up this inconsistency.Signed-off-by Thomas Huth <[email protected]>
Michael S. Tsirkin
AppliedQuoted 7 lines · Thomas Huth
The error reporting in
pci_nic_init()is quite erratic: Some errors are printed directly witherror_report(), and some are passed back to the callerpci_nic_init_nofail()via an Error pointer. Sincepci_nic_init()is only used bypci_nic_init_nofail(), the functions can be simply merged to clean up this inconsistency.Signed-off-by Thomas Huth <[email protected]>
Applied, thanks everyone.
Quoted 85 lines
--- hw/pci/pci.c | 43 ++++++++++++++----------------------------- 1 file changed, 14 insertions(+), 29 deletions(-)hw/pci/pci.c +14
-29@@ -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)Signature · 1 line
1.8.3.1