Commit 34ab316d authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Bjorn Helgaas

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.deSigned-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 230b1e54
...@@ -588,61 +588,43 @@ static pci_ers_result_t pcifront_common_process(int cmd, ...@@ -588,61 +588,43 @@ static pci_ers_result_t pcifront_common_process(int cmd,
struct pcifront_device *pdev, struct pcifront_device *pdev,
pci_channel_state_t state) pci_channel_state_t state)
{ {
pci_ers_result_t result;
struct pci_driver *pdrv; struct pci_driver *pdrv;
int bus = pdev->sh_info->aer_op.bus; int bus = pdev->sh_info->aer_op.bus;
int devfn = pdev->sh_info->aer_op.devfn; int devfn = pdev->sh_info->aer_op.devfn;
int domain = pdev->sh_info->aer_op.domain; int domain = pdev->sh_info->aer_op.domain;
struct pci_dev *pcidev; struct pci_dev *pcidev;
int flag = 0;
dev_dbg(&pdev->xdev->dev, dev_dbg(&pdev->xdev->dev,
"pcifront AER process: cmd %x (bus:%x, devfn%x)", "pcifront AER process: cmd %x (bus:%x, devfn%x)",
cmd, bus, devfn); cmd, bus, devfn);
result = PCI_ERS_RESULT_NONE;
pcidev = pci_get_domain_bus_and_slot(domain, bus, devfn); pcidev = pci_get_domain_bus_and_slot(domain, bus, devfn);
if (!pcidev || !pcidev->driver) { if (!pcidev || !pcidev->driver) {
dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n"); dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n");
pci_dev_put(pcidev); pci_dev_put(pcidev);
return result; return PCI_ERS_RESULT_NONE;
} }
pdrv = pcidev->driver; pdrv = pcidev->driver;
if (pdrv) { if (pdrv->err_handler && pdrv->err_handler->error_detected) {
if (pdrv->err_handler && pdrv->err_handler->error_detected) { pci_dbg(pcidev, "trying to call AER service\n");
pci_dbg(pcidev, "trying to call AER service\n"); switch (cmd) {
if (pcidev) { case XEN_PCI_OP_aer_detected:
flag = 1; return pdrv->err_handler->error_detected(pcidev, state);
switch (cmd) { case XEN_PCI_OP_aer_mmio:
case XEN_PCI_OP_aer_detected: return pdrv->err_handler->mmio_enabled(pcidev);
result = pdrv->err_handler-> case XEN_PCI_OP_aer_slotreset:
error_detected(pcidev, state); return pdrv->err_handler->slot_reset(pcidev);
break; case XEN_PCI_OP_aer_resume:
case XEN_PCI_OP_aer_mmio: pdrv->err_handler->resume(pcidev);
result = pdrv->err_handler-> return PCI_ERS_RESULT_NONE;
mmio_enabled(pcidev); default:
break; dev_err(&pdev->xdev->dev,
case XEN_PCI_OP_aer_slotreset: "bad request in aer recovery operation!\n");
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 (!flag)
result = PCI_ERS_RESULT_NONE;
return result; return PCI_ERS_RESULT_NONE;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment