Message ID | 20210811080637.2596434-1-u.kleine-koenig@pengutronix.de (mailing list archive) |
---|---|
Headers | show |
Series | PCI: Drop duplicated tracking of a pci_dev's bound driver | expand |
This mail didn't reach all intended recipients as there was a newline at the wrong place in the input for git send-email. I fixed this up for this reply, please make sure to do the same if you reply to this patch. The other patches in this thread should be fine. I'm keeping the mail content below to facilitate replying. Sorry for the inconvenience, Uwe On Wed, Aug 11, 2021 at 10:06:32AM +0200, Uwe Kleine-König wrote: > pcifront_common_process() has a check at the start that exits early if > pcidev or pdidev->driver are NULL. So simplify the following code by not > checking these two again. > > Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> > --- > drivers/pci/xen-pcifront.c | 57 +++++++++++++++++--------------------- > 1 file changed, 25 insertions(+), 32 deletions(-) > > diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c > index b7a8f3a1921f..3c648e6cb8f8 100644 > --- a/drivers/pci/xen-pcifront.c > +++ b/drivers/pci/xen-pcifront.c > @@ -591,7 +591,6 @@ static pci_ers_result_t pcifront_common_process(int cmd, > 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)", > @@ -606,40 +605,34 @@ static pci_ers_result_t pcifront_common_process(int cmd, > } > 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: > + 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"); > } > + > + return result; > } > - if (!flag) > - result = PCI_ERS_RESULT_NONE; > > - return result; > + return PCI_ERS_RESULT_NONE; > } > > > -- > 2.30.2 > > >
From: Uwe Kleine-König <uwe@kleine-koenig.org> Hello, Today the following is always true for a struct pci_dev *pdev: pdev->driver == pdev->dev.driver ? to_pci_driver(pdev->dev.driver) : NULL This series is about getting rid of struct pci_dev::driver. The first three patches are unmodified compared to v2 (apart from an added Reviewed-by tag) and are just minor cleanups. Patch #4 replaces all usages of pci_dev::driver->name by dev_driver_string(). Patch #5 simplifies struct mpt_pci_driver by dropping an unused parameter from a function callback. The calculation of this parameter made use of struct pci_dev::driver. Patch #6 simplifies adf_enable_aer() and moves one assignment done in that function to the initializer of the respective static data. Patch #7 then modifies all remaining users of struct pci_dev::driver to use to_pci_driver(pdev->dev.driver) instead and finally patch #8 gets rid of the driver member. Note this series is only build tested. Theoretically patches #4 and #7 could be split by subsystem, there are no dependencies, but I'd prefer that all patches go in together via the pci tree to simplify the procedure. If you don't agree please speak up. Best regards Uwe Uwe Kleine-König (8): PCI: Simplify pci_device_remove() PCI: Drop useless check from pci_device_probe() xen/pci: Drop some checks that are always true PCI: replace pci_dev::driver usage that gets the driver name scsi: message: fusion: Remove unused parameter of mpt_pci driver's probe() crypto: qat - simplify adf_enable_aer() PCI: Replace pci_dev::driver usage by pci_dev::dev.driver PCI: Drop duplicated tracking of a pci_dev's bound driver arch/powerpc/include/asm/ppc-pci.h | 7 ++- arch/powerpc/kernel/eeh_driver.c | 10 +-- arch/x86/events/intel/uncore.c | 2 +- arch/x86/kernel/probe_roms.c | 2 +- drivers/bcma/host_pci.c | 7 ++- drivers/crypto/hisilicon/qm.c | 2 +- drivers/crypto/qat/qat_4xxx/adf_drv.c | 7 +-- drivers/crypto/qat/qat_c3xxx/adf_drv.c | 7 +-- drivers/crypto/qat/qat_c62x/adf_drv.c | 7 +-- drivers/crypto/qat/qat_common/adf_aer.c | 10 +-- .../crypto/qat/qat_common/adf_common_drv.h | 2 +- drivers/crypto/qat/qat_dh895xcc/adf_drv.c | 7 +-- drivers/message/fusion/mptbase.c | 7 +-- drivers/message/fusion/mptbase.h | 2 +- drivers/message/fusion/mptctl.c | 4 +- drivers/message/fusion/mptlan.c | 2 +- drivers/misc/cxl/guest.c | 24 ++++--- drivers/misc/cxl/pci.c | 30 +++++---- .../ethernet/hisilicon/hns3/hns3_ethtool.c | 2 +- .../ethernet/marvell/prestera/prestera_pci.c | 2 +- drivers/net/ethernet/mellanox/mlxsw/pci.c | 2 +- .../ethernet/netronome/nfp/nfp_net_ethtool.c | 2 +- drivers/pci/iov.c | 25 +++++--- drivers/pci/pci-driver.c | 45 ++++++------- drivers/pci/pci.c | 4 +- drivers/pci/pcie/err.c | 36 ++++++----- drivers/pci/xen-pcifront.c | 63 +++++++++---------- drivers/ssb/pcihost_wrapper.c | 8 ++- drivers/usb/host/xhci-pci.c | 2 +- include/linux/pci.h | 1 - 30 files changed, 164 insertions(+), 167 deletions(-) base-commit: 2734d6c1b1a089fb593ef6a23d4b70903526fe0c