On Wed, Feb 01, 2023 at 10:38:02AM +0800, Huacai Chen wrote: > This patch has a long story. Understatement of the year :) > @@ -501,7 +501,6 @@ static void pcie_port_device_remove(struct pci_dev *dev) > { > device_for_each_child(&dev->dev, NULL, remove_iter); > pci_free_irq_vectors(dev); > - pci_disable_device(dev); Interesting. What I had in mind was keeping the original pcie_port_device_remove() unchanged, adding the new pcie_portdrv_shutdown(), and omitting pci_disable_device() just from pcie_portdrv_shutdown(). I haven't thought about the implications of omitting pci_disable_device() from the .remove() method (pcie_port_device_remove()). Just pointing this out quickly before going to bed in case you have a chance to think about what's the best strategy :) Bjorn