Hello, struct pci_dev tracks the bound pci driver twice. This series is about removing this duplication. The first two patches are just cleanups. The third patch introduces a wrapper that abstracts access to struct pci_dev->driver. In the next patch (hopefully) all users are converted to use the new wrapper and finally the fifth patch removes the duplication. Note this series is only build tested (allmodconfig on several architectures). I'm open to restructure this series if this simplifies things. E.g. the use of the new wrapper in drivers/pci could be squashed into the patch introducing the wrapper. Patch 4 could be split by maintainer tree or squashed into patch 3 completely. Best regards Uwe Uwe Kleine-König (5): PCI: Simplify pci_device_remove() PCI: Drop useless check from pci_device_probe() PCI: Provide wrapper to access a pci_dev's bound driver PCI: Adapt all code locations to not use struct pci_dev::driver directly PCI: Drop duplicated tracking of a pci_dev's bound driver arch/powerpc/include/asm/ppc-pci.h | 3 +- arch/powerpc/kernel/eeh_driver.c | 12 +++-- arch/x86/events/intel/uncore.c | 2 +- arch/x86/kernel/probe_roms.c | 2 +- drivers/bcma/host_pci.c | 6 ++- drivers/crypto/hisilicon/qm.c | 2 +- drivers/crypto/qat/qat_common/adf_aer.c | 2 +- drivers/message/fusion/mptbase.c | 4 +- drivers/misc/cxl/guest.c | 21 ++++---- drivers/misc/cxl/pci.c | 25 ++++++---- .../ethernet/hisilicon/hns3/hns3_ethtool.c | 3 +- .../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 | 23 +++++---- drivers/pci/pci-driver.c | 48 +++++++++---------- drivers/pci/pci.c | 10 ++-- drivers/pci/pcie/err.c | 35 +++++++------- drivers/pci/xen-pcifront.c | 4 +- drivers/ssb/pcihost_wrapper.c | 7 ++- drivers/usb/host/xhci-pci.c | 3 +- include/linux/pci.h | 2 +- 22 files changed, 121 insertions(+), 99 deletions(-) base-commit: 2734d6c1b1a089fb593ef6a23d4b70903526fe0c -- 2.30.2