xen/pcifront: Use to_pci_driver() instead of pci_dev->driver
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tue, 12 Oct 2021 21:35:34 +0000 (16:35 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 15 Oct 2021 16:43:43 +0000 (11:43 -0500)
Struct pci_driver contains a struct device_driver, so for PCI devices, it's
easy to convert a device_driver * to a pci_driver * with to_pci_driver().
The device_driver * is in struct device, so we don't need to also keep
track of the pci_driver * in struct pci_dev.

Replace pdev->driver with to_pci_driver().  This is a step toward removing
pci_dev->driver.

[bhelgaas: split to separate patch]
Link: https://lore.kernel.org/r/20211004125935.2300113-11-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>
drivers/pci/xen-pcifront.c

index aa3b848..d858d25 100644 (file)
@@ -599,12 +599,12 @@ static pci_ers_result_t pcifront_common_process(int cmd,
                cmd, bus, devfn);
 
        pcidev = pci_get_domain_bus_and_slot(domain, bus, devfn);
-       if (!pcidev || !pcidev->driver) {
+       if (!pcidev || !pcidev->dev.driver) {
                dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n");
                pci_dev_put(pcidev);
                return PCI_ERS_RESULT_NONE;
        }
-       pdrv = pcidev->driver;
+       pdrv = to_pci_driver(pcidev->dev.driver);
 
        if (pdrv->err_handler && pdrv->err_handler->error_detected) {
                pci_dbg(pcidev, "trying to call AER service\n");