On Mon, Jun 13, 2022 at 07:19:06PM +0800, Meng Tang wrote: > From: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx> > > Make pci_enable_ptm() accessible from the drivers. > > Exposing this to the driver enables the driver to use the > 'ptm_enabled' field of 'pci_dev' to check if PTM is enabled or not. > > This reverts commit ac6c26da29c1 ("PCI: Make pci_enable_ptm() private"). > > In the 5.10 kernel version, even to the latest confirmed version, > the following error will still be reported when I225-V network card > is used. > > kernel: [ 1.031581] igc: probe of 0000:01:00.0 failed with error -2 > kernel: [ 1.066574] igc: probe of 0000:02:00.0 failed with error -2 > kernel: [ 1.096152] igc: probe of 0000:03:00.0 failed with error -2 > kernel: [ 1.127251] igc: probe of 0000:04:00.0 failed with error -2 > > Even though I confirmed that 7c496de538eebd8212dc2a3c9a468386b2640d4 > and 47bca7de6a4fb8dcb564c7ca4d885c91ed19e03 have been merged into the > kernel 5.10, the bug is still occurred, and the > "commit 1b5d73fb8624 ("igc: Enable PCIe PTM")" can fixes it. > > And this patch is the pre-patch of > 1b5d73fb862414106cf270a1a7300ce8ae77de83. I guess the point of this is to backport 1d71eb53e451 ("Revert "PCI: Make pci_enable_ptm() private"") to a v5.10 stable kernel? If so, I would think you'd want to send this to stable@xxxxxxxxxxxxxxx. > Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx> > Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> > Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx> > Signed-off-by: Meng Tang <tangmeng@xxxxxxxxxxxxx> > --- > drivers/pci/pci.h | 3 --- > include/linux/pci.h | 7 +++++++ > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h > index a96dc6f53076..4084764bf0b1 100644 > --- a/drivers/pci/pci.h > +++ b/drivers/pci/pci.h > @@ -585,11 +585,8 @@ static inline void pcie_ecrc_get_policy(char *str) { } > > #ifdef CONFIG_PCIE_PTM > void pci_ptm_init(struct pci_dev *dev); > -int pci_enable_ptm(struct pci_dev *dev, u8 *granularity); > #else > static inline void pci_ptm_init(struct pci_dev *dev) { } > -static inline int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) > -{ return -EINVAL; } > #endif > > struct pci_dev_reset_methods { > diff --git a/include/linux/pci.h b/include/linux/pci.h > index bc5a1150f072..692ce678c5f1 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -1599,6 +1599,13 @@ static inline bool pci_aer_available(void) { return false; } > > bool pci_ats_disabled(void); > > +#ifdef CONFIG_PCIE_PTM > +int pci_enable_ptm(struct pci_dev *dev, u8 *granularity); > +#else > +static inline int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) > +{ return -EINVAL; } > +#endif > + > void pci_cfg_access_lock(struct pci_dev *dev); > bool pci_cfg_access_trylock(struct pci_dev *dev); > void pci_cfg_access_unlock(struct pci_dev *dev); > -- > 2.20.1 > > >