2022-06-13 17:00:59

by tangmeng

[permalink] [raw]
Subject: [PATCH 5.10 1/2] commit 1d71eb53e451 ("Revert "PCI: Make pci_enable_ptm() private"")

From: Vinicius Costa Gomes <[email protected]>

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.

Signed-off-by: Vinicius Costa Gomes <[email protected]>
Acked-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Tony Nguyen <[email protected]>
Signed-off-by: Meng Tang <[email protected]>
---
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




2022-06-13 19:12:30

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH 5.10 1/2] commit 1d71eb53e451 ("Revert "PCI: Make pci_enable_ptm() private"")

On Mon, Jun 13, 2022 at 07:19:06PM +0800, Meng Tang wrote:
> From: Vinicius Costa Gomes <[email protected]>
>
> 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
[email protected].

> Signed-off-by: Vinicius Costa Gomes <[email protected]>
> Acked-by: Bjorn Helgaas <[email protected]>
> Signed-off-by: Tony Nguyen <[email protected]>
> Signed-off-by: Meng Tang <[email protected]>
> ---
> 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
>
>
>