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

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: 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
Loading
Loading
Loading
Loading
+17 −35
Original line number Diff line number Diff line
@@ -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;
			return pdrv->err_handler->error_detected(pcidev, state);
		case XEN_PCI_OP_aer_mmio:
					result = pdrv->err_handler->
						 mmio_enabled(pcidev);
					break;
			return pdrv->err_handler->mmio_enabled(pcidev);
		case XEN_PCI_OP_aer_slotreset:
					result = pdrv->err_handler->
						 slot_reset(pcidev);
					break;
			return pdrv->err_handler->slot_reset(pcidev);
		case XEN_PCI_OP_aer_resume:
			pdrv->err_handler->resume(pcidev);
					break;
			return PCI_ERS_RESULT_NONE;
		default:
			dev_err(&pdev->xdev->dev,
						"bad request in aer recovery "
						"operation!\n");

				}
			}
				"bad request in aer recovery operation!\n");
		}
	}
	if (!flag)
		result = PCI_ERS_RESULT_NONE;

	return result;
	return PCI_ERS_RESULT_NONE;
}