Re: [PATCH v13 1/3] PCI: make pci_dev_is_disconnected() helper public for other drivers

From: Baolu Lu
Date: Thu Feb 22 2024 - 07:55:11 EST


On 2024/2/22 17:02, Ethan Zhao wrote:
Make pci_dev_is_disconnected() public so that it can be called from
Intel VT-d driver to quickly fix/workaround the surprise removal
unplug hang issue for those ATS capable devices on PCIe switch downstream
hotplug capable ports.

Beside pci_device_is_present() function, this one has no config space
space access, so is light enough to optimize the normal pure surprise
removal and safe removal flow.

Tested-by: Haorong Ye<yehaorong@xxxxxxxxxxxxx>
Signed-off-by: Ethan Zhao<haifeng.zhao@xxxxxxxxxxxxxxx>
---
drivers/pci/pci.h | 5 -----
include/linux/pci.h | 5 +++++
2 files changed, 5 insertions(+), 5 deletions(-)

Hi PCI subsystem maintainers,

The iommu drivers (including, but not limited to, the Intel VT-d driver)
require a helper to check the physical presence of a PCI device in two
scenarios:

- During the iommu_release_device() path: This ensures the device is
physically present before sending device TLB invalidation to device.

- During the device driver lifecycle when a device TLB invalidation
timeout event is generated by the IOMMU hardware: This helps handle
situations where the device might have been hot-removed.

While there may be some adjustments needed in patch 3/3, I'd like to
confirm with you whether it's feasible to expose this helper for general
use within the iommu subsystem.

If you agree with this change, I can route this patch to Linus through
the iommu tree with an "acked-by" or "reviewed-by" tag from you.

Best regards,
baolu