xen/pcifront: Drop pcifront_common_process() tests of pcidev, pdrv
pcifront_common_process() exits early if pcidev or pcidev->driver are NULL, so simplify it by not checking them again. [bhelgaas: split flag change to separate patch] Link: https://lore.kernel.org/r/20211004125935.2300113-4-u.kleine-koenig@pengutronix.de Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
230b1e54bd
commit
34ab316d72
@ -588,61 +588,43 @@ static pci_ers_result_t pcifront_common_process(int cmd,
|
||||
struct pcifront_device *pdev,
|
||||
pci_channel_state_t state)
|
||||
{
|
||||
pci_ers_result_t result;
|
||||
struct pci_driver *pdrv;
|
||||
int bus = pdev->sh_info->aer_op.bus;
|
||||
int devfn = pdev->sh_info->aer_op.devfn;
|
||||
int domain = pdev->sh_info->aer_op.domain;
|
||||
struct pci_dev *pcidev;
|
||||
int flag = 0;
|
||||
|
||||
dev_dbg(&pdev->xdev->dev,
|
||||
"pcifront AER process: cmd %x (bus:%x, devfn%x)",
|
||||
cmd, bus, devfn);
|
||||
result = PCI_ERS_RESULT_NONE;
|
||||
|
||||
pcidev = pci_get_domain_bus_and_slot(domain, bus, devfn);
|
||||
if (!pcidev || !pcidev->driver) {
|
||||
dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n");
|
||||
pci_dev_put(pcidev);
|
||||
return result;
|
||||
return PCI_ERS_RESULT_NONE;
|
||||
}
|
||||
pdrv = pcidev->driver;
|
||||
|
||||
if (pdrv) {
|
||||
if (pdrv->err_handler && pdrv->err_handler->error_detected) {
|
||||
pci_dbg(pcidev, "trying to call AER service\n");
|
||||
if (pcidev) {
|
||||
flag = 1;
|
||||
switch (cmd) {
|
||||
case XEN_PCI_OP_aer_detected:
|
||||
result = pdrv->err_handler->
|
||||
error_detected(pcidev, state);
|
||||
break;
|
||||
case XEN_PCI_OP_aer_mmio:
|
||||
result = pdrv->err_handler->
|
||||
mmio_enabled(pcidev);
|
||||
break;
|
||||
case XEN_PCI_OP_aer_slotreset:
|
||||
result = pdrv->err_handler->
|
||||
slot_reset(pcidev);
|
||||
break;
|
||||
case XEN_PCI_OP_aer_resume:
|
||||
pdrv->err_handler->resume(pcidev);
|
||||
break;
|
||||
default:
|
||||
dev_err(&pdev->xdev->dev,
|
||||
"bad request in aer recovery "
|
||||
"operation!\n");
|
||||
|
||||
}
|
||||
}
|
||||
if (pdrv->err_handler && pdrv->err_handler->error_detected) {
|
||||
pci_dbg(pcidev, "trying to call AER service\n");
|
||||
switch (cmd) {
|
||||
case XEN_PCI_OP_aer_detected:
|
||||
return pdrv->err_handler->error_detected(pcidev, state);
|
||||
case XEN_PCI_OP_aer_mmio:
|
||||
return pdrv->err_handler->mmio_enabled(pcidev);
|
||||
case XEN_PCI_OP_aer_slotreset:
|
||||
return pdrv->err_handler->slot_reset(pcidev);
|
||||
case XEN_PCI_OP_aer_resume:
|
||||
pdrv->err_handler->resume(pcidev);
|
||||
return PCI_ERS_RESULT_NONE;
|
||||
default:
|
||||
dev_err(&pdev->xdev->dev,
|
||||
"bad request in aer recovery operation!\n");
|
||||
}
|
||||
}
|
||||
if (!flag)
|
||||
result = PCI_ERS_RESULT_NONE;
|
||||
|
||||
return result;
|
||||
return PCI_ERS_RESULT_NONE;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user