Message ID | 20231213034637.2603013-2-haifeng.zhao@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | fix vt-d hard lockup when hotplug ATS capable device | expand |
On Tue, Dec 12, 2023 at 10:46:36PM -0500, Ethan Zhao wrote: > move pci_dev_is_disconnected() from driver/pci/pci.h to public > include/linux/pci.h for other driver's reference. > no function change. That's merely a prose description of the code. A reader can already see from the code what it's doing. You need to explain the *reason* for the change instead. E.g.: "Make pci_dev_is_disconnected() public so that it can be called from $DRIVER to speed up hot removal handling which may otherwise take seconds because of $REASONS." Thanks, Lukas
On 12/13/2023 6:49 PM, Lukas Wunner wrote: > On Tue, Dec 12, 2023 at 10:46:36PM -0500, Ethan Zhao wrote: >> move pci_dev_is_disconnected() from driver/pci/pci.h to public >> include/linux/pci.h for other driver's reference. >> no function change. > That's merely a prose description of the code. A reader can already > see from the code what it's doing. You need to explain the *reason* > for the change instead. E.g.: "Make pci_dev_is_disconnected() public > so that it can be called from $DRIVER to speed up hot removal > handling which may otherwise take seconds because of $REASONS." Yup, why I made it public. then how about " Make pci_dev_is_disconnected() public so that it can be called from Intel vt-d driver to check the device's hotplug removal state when issue devTLB flush request." Thanks, Ethan > > Thanks, > > Lukas
On Thu, Dec 14, 2023 at 08:58:49AM +0800, Ethan Zhao wrote: > On 12/13/2023 6:49 PM, Lukas Wunner wrote: > > On Tue, Dec 12, 2023 at 10:46:36PM -0500, Ethan Zhao wrote: > > > move pci_dev_is_disconnected() from driver/pci/pci.h to public > > > include/linux/pci.h for other driver's reference. > > > no function change. > > > > That's merely a prose description of the code. A reader can already > > see from the code what it's doing. You need to explain the *reason* > > for the change instead. E.g.: "Make pci_dev_is_disconnected() public > > so that it can be called from $DRIVER to speed up hot removal > > handling which may otherwise take seconds because of $REASONS." > > Yup, why I made it public. then how about > > "Make pci_dev_is_disconnected() public so that it can be called from > Intel vt-d driver to check the device's hotplug removal state when > issue devTLB flush request." Much better. You may optionally want to point out the location of the file in the source tree because not everyone may be familiar where to find the "Intel vt-d driver". Also, not every reader may know where issuing of devTLB flush requests occurs, so it might make sense to name the function where that happens. Finally, it is common to adhere to terms used in the PCIe Base Spec in commit messages, so "ATC Invalidate Request" might be preferable to "devTLB flush request". Thanks, Lukas
On 12/21/2023 6:51 PM, Lukas Wunner wrote: > On Thu, Dec 14, 2023 at 08:58:49AM +0800, Ethan Zhao wrote: >> On 12/13/2023 6:49 PM, Lukas Wunner wrote: >>> On Tue, Dec 12, 2023 at 10:46:36PM -0500, Ethan Zhao wrote: >>>> move pci_dev_is_disconnected() from driver/pci/pci.h to public >>>> include/linux/pci.h for other driver's reference. >>>> no function change. >>> That's merely a prose description of the code. A reader can already >>> see from the code what it's doing. You need to explain the *reason* >>> for the change instead. E.g.: "Make pci_dev_is_disconnected() public >>> so that it can be called from $DRIVER to speed up hot removal >>> handling which may otherwise take seconds because of $REASONS." >> Yup, why I made it public. then how about >> >> "Make pci_dev_is_disconnected() public so that it can be called from >> Intel vt-d driver to check the device's hotplug removal state when >> issue devTLB flush request." > Much better. > > You may optionally want to point out the location of the file in the > source tree because not everyone may be familiar where to find the > "Intel vt-d driver". Also, not every reader may know where issuing > of devTLB flush requests occurs, so it might make sense to name the > function where that happens. Finally, it is common to adhere to terms > used in the PCIe Base Spec in commit messages, so "ATC Invalidate Request" > might be preferable to "devTLB flush request". ATS Invalidate Request ? devTLB flush request has the same meaning, I thought all iommu/PCIe guys could understand. Thanks, Ethan > > Thanks, > > Lukas
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 5ecbcf041179..75fa2084492f 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -366,11 +366,6 @@ static inline int pci_dev_set_disconnected(struct pci_dev *dev, void *unused) return 0; } -static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) -{ - return dev->error_state == pci_channel_io_perm_failure; -} - /* pci_dev priv_flags */ #define PCI_DEV_ADDED 0 #define PCI_DPC_RECOVERED 1 diff --git a/include/linux/pci.h b/include/linux/pci.h index 60ca768bc867..869f2ec97a84 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2503,6 +2503,11 @@ static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev) return NULL; } +static inline bool pci_dev_is_disconnected(const struct pci_dev *dev) +{ + return dev->error_state == pci_channel_io_perm_failure; +} + void pci_request_acs(void); bool pci_acs_enabled(struct pci_dev *pdev, u16 acs_flags); bool pci_acs_path_enabled(struct pci_dev *start,