PCI: endpoint: Clean up error handling in vpci_scan_bus()
[ Upstream commit 8e0f5a96c534f781e8c57ca30459448b3bfe5429 ]
Smatch complains about inconsistent NULL checking in vpci_scan_bus():
drivers/pci/endpoint/functions/pci-epf-vntb.c:1024 vpci_scan_bus() error: we previously assumed 'vpci_bus' could be null (see line 1021)
Instead of printing an error message and then crashing we should return
an error code and clean up.
Also the NULL check is reversed so it prints an error for success
instead of failure.
Fixes: e35f56bb03
("PCI: endpoint: Support NTB transfer between RC and EP")
Link: https://lore.kernel.org/linux-pci/68e0f6a4-fd57-45d0-945b-0876f2c8cb86@moroto.mountain
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
99b642dac2
commit
0e27e2e869
|
@ -1029,8 +1029,10 @@ static int vpci_scan_bus(void *sysdata)
|
|||
struct epf_ntb *ndev = sysdata;
|
||||
|
||||
vpci_bus = pci_scan_bus(ndev->vbus_number, &vpci_ops, sysdata);
|
||||
if (vpci_bus)
|
||||
pr_err("create pci bus\n");
|
||||
if (!vpci_bus) {
|
||||
pr_err("create pci bus failed\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
pci_bus_add_devices(vpci_bus);
|
||||
|
||||
|
@ -1352,10 +1354,14 @@ static int epf_ntb_bind(struct pci_epf *epf)
|
|||
goto err_bar_alloc;
|
||||
}
|
||||
|
||||
vpci_scan_bus(ntb);
|
||||
ret = vpci_scan_bus(ntb);
|
||||
if (ret)
|
||||
goto err_unregister;
|
||||
|
||||
return 0;
|
||||
|
||||
err_unregister:
|
||||
pci_unregister_driver(&vntb_pci_driver);
|
||||
err_bar_alloc:
|
||||
epf_ntb_config_spad_bar_free(ntb);
|
||||
|
||||
|
|
Loading…
Reference in New Issue