[PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()

Terry Bowman posted 34 patches 3 weeks, 4 days ago
There is a newer version of this series
[PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Terry Bowman 3 weeks, 4 days ago
Internal PCIe errors are not enabled by default during initialization. This
creates a problem for CXL drivers, which rely on PCIe Correctable and
Uncorrectable Internal Errors to receive CXL protocol error notifications.

Export pci_aer_unmask_internal_errors() so CXL and other drivers can
enable internal PCIe errors.

Signed-off-by: Terry Bowman <terry.bowman@amd.com>

---

Changes in v13->v14:
- New commit. Bjorn requested separating out and adding immediatetly
before being used. This is called from cxl_rch_enable_rcec() in
following patch.
---
 drivers/pci/pcie/aer.c | 6 +++---
 include/linux/aer.h    | 2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index c99ba2a1159c..63658e691aa2 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -1120,8 +1120,6 @@ static bool find_source_device(struct pci_dev *parent,
 	return true;
 }
 
-#ifdef CONFIG_PCIEAER_CXL
-
 /**
  * pci_aer_unmask_internal_errors - unmask internal errors
  * @dev: pointer to the pci_dev data structure
@@ -1132,7 +1130,7 @@ static bool find_source_device(struct pci_dev *parent,
  * Note: AER must be enabled and supported by the device which must be
  * checked in advance, e.g. with pcie_aer_is_native().
  */
-static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
+void pci_aer_unmask_internal_errors(struct pci_dev *dev)
 {
 	int aer = dev->aer_cap;
 	u32 mask;
@@ -1145,7 +1143,9 @@ static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
 	mask &= ~PCI_ERR_COR_INTERNAL;
 	pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
 }
+EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
 
+#ifdef CONFIG_PCIEAER_CXL
 static bool is_cxl_mem_dev(struct pci_dev *dev)
 {
 	/*
diff --git a/include/linux/aer.h b/include/linux/aer.h
index 02940be66324..df0f5c382286 100644
--- a/include/linux/aer.h
+++ b/include/linux/aer.h
@@ -56,12 +56,14 @@ struct aer_capability_regs {
 #if defined(CONFIG_PCIEAER)
 int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
 int pcie_aer_is_native(struct pci_dev *dev);
+void pci_aer_unmask_internal_errors(struct pci_dev *dev);
 #else
 static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
 {
 	return -EINVAL;
 }
 static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
+static inline void pci_aer_unmask_internal_errors(struct pci_dev *dev) { }
 #endif
 
 void pci_print_aer(struct pci_dev *dev, int aer_severity,
-- 
2.34.1
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Bjorn Helgaas 2 weeks, 3 days ago
On Wed, Jan 14, 2026 at 12:20:30PM -0600, Terry Bowman wrote:
> Internal PCIe errors are not enabled by default during initialization. This
> creates a problem for CXL drivers, which rely on PCIe Correctable and
> Uncorrectable Internal Errors to receive CXL protocol error notifications.
> 
> Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> enable internal PCIe errors.
> 
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

> ---
> 
> Changes in v13->v14:
> - New commit. Bjorn requested separating out and adding immediatetly
> before being used. This is called from cxl_rch_enable_rcec() in
> following patch.
> ---
>  drivers/pci/pcie/aer.c | 6 +++---
>  include/linux/aer.h    | 2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index c99ba2a1159c..63658e691aa2 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -1120,8 +1120,6 @@ static bool find_source_device(struct pci_dev *parent,
>  	return true;
>  }
>  
> -#ifdef CONFIG_PCIEAER_CXL
> -
>  /**
>   * pci_aer_unmask_internal_errors - unmask internal errors
>   * @dev: pointer to the pci_dev data structure
> @@ -1132,7 +1130,7 @@ static bool find_source_device(struct pci_dev *parent,
>   * Note: AER must be enabled and supported by the device which must be
>   * checked in advance, e.g. with pcie_aer_is_native().
>   */
> -static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  {
>  	int aer = dev->aer_cap;
>  	u32 mask;
> @@ -1145,7 +1143,9 @@ static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  	mask &= ~PCI_ERR_COR_INTERNAL;
>  	pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
>  }
> +EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
>  
> +#ifdef CONFIG_PCIEAER_CXL
>  static bool is_cxl_mem_dev(struct pci_dev *dev)
>  {
>  	/*
> diff --git a/include/linux/aer.h b/include/linux/aer.h
> index 02940be66324..df0f5c382286 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -56,12 +56,14 @@ struct aer_capability_regs {
>  #if defined(CONFIG_PCIEAER)
>  int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
>  int pcie_aer_is_native(struct pci_dev *dev);
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev);
>  #else
>  static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
>  {
>  	return -EINVAL;
>  }
>  static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
> +static inline void pci_aer_unmask_internal_errors(struct pci_dev *dev) { }
>  #endif
>  
>  void pci_print_aer(struct pci_dev *dev, int aer_severity,
> -- 
> 2.34.1
>
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by dan.j.williams@intel.com 2 weeks, 5 days ago
Terry Bowman wrote:
> Internal PCIe errors are not enabled by default during initialization. This
> creates a problem for CXL drivers, which rely on PCIe Correctable and
> Uncorrectable Internal Errors to receive CXL protocol error notifications.
> 
> Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> enable internal PCIe errors.

I folded in the following to this patch because opening up internal
errors for PCIe drivers in general is not a goal.

1:  cb9a15481d8c ! 1:  7433e0204753 PCI/AER: Export pci_aer_unmask_internal_errors()
    @@ Metadata
      ## Commit message ##
         PCI/AER: Export pci_aer_unmask_internal_errors()
     
    -    Internal PCIe errors are not enabled by default during initialization. This
    -    creates a problem for CXL drivers, which rely on PCIe Correctable and
    -    Uncorrectable Internal Errors to receive CXL protocol error notifications.
    +    Internal PCIe errors are not enabled by default during initialization
    +    because their behavior is too device-specific and there is no standard way
    +    to reason about them. However, for CXL an internal error is the standard
    +    mechanism for conveying CXL protocol errors.
     
    -    Export pci_aer_unmask_internal_errors() so CXL and other drivers can
    -    enable internal PCIe errors.
    +    Export pci_aer_unmask_internal_errors() for CXL, but make it clear that
    +    they are only meant for CXL and the status quo for leaving them masked for
    +    PCIe in general remains.
     
         Signed-off-by: Terry Bowman <terry.bowman@amd.com>
         Reviewed-by: Dave Jiang <dave.jiang@intel.com>
         Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
         Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
         Link: https://patch.msgid.link/20260114182055.46029-10-terry.bowman@amd.com
    +    Co-developed-by: Dan Williams <dan.j.williams@intel.com>
         Signed-off-by: Dan Williams <dan.j.williams@intel.com>
     
      ## include/linux/aer.h ##
    @@ drivers/pci/pcie/aer.c: static bool find_source_device(struct pci_dev *parent,
        int aer = dev->aer_cap;
        u32 mask;
     @@ drivers/pci/pcie/aer.c: static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
    -   mask &= ~PCI_ERR_COR_INTERNAL;
        pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
      }
    -+EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
      
    ++/*
    ++ * Internal errors are too device-specific to enable generally, however for CXL
    ++ * their behavior is standardized for conveying CXL protocol errors.
    ++ */
    ++EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors, "cxl_core");
    ++
     +#ifdef CONFIG_PCIEAER_CXL
      static bool is_cxl_mem_dev(struct pci_dev *dev)
      {
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Lukas Wunner 2 weeks, 3 days ago
On Mon, Jan 19, 2026 at 06:09:39PM -0800, dan.j.williams@intel.com wrote:
> Terry Bowman wrote:
> > Internal PCIe errors are not enabled by default during initialization. This
> > creates a problem for CXL drivers, which rely on PCIe Correctable and
> > Uncorrectable Internal Errors to receive CXL protocol error notifications.
> > 
> > Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> > enable internal PCIe errors.
> 
> I folded in the following to this patch because opening up internal
> errors for PCIe drivers in general is not a goal.

As said, the "xe" driver needs to unmask Internal Errors and could
take advantage of this helper, so I'd call opening this up for PCI
drivers if not a goal then at least a "desirable side effect". ;)

https://lore.kernel.org/all/aR1_M_i3yIygd8v-@wunner.de/

>     +    Internal PCIe errors are not enabled by default during initialization
>     +    because their behavior is too device-specific and there is no standard way
>     +    to reason about them.

Well, they're not enabled by default because per the spec they're
masked in the Uncorrectable Error Mask and Correctable Error Mask
Registers.  It's up to drivers to unmask them if they know the
hardware signals them.  CXL just happens be one of those drivers.

>      @@ drivers/pci/pcie/aer.c: static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>     -   mask &= ~PCI_ERR_COR_INTERNAL;
>         pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
>       }

Unexplained change vis-à-vis Terry's submission.  It seems you're
reading the Correctable Error Mask Register and writing the same
value back.  That's doesn't seem to make sense.

>     -+EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
>       
>     ++/*
>     ++ * Internal errors are too device-specific to enable generally, however for CXL
>     ++ * their behavior is standardized for conveying CXL protocol errors.
>     ++ */
>     ++EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors, "cxl_core");
>     ++

This change will require touching aer.c every time a driver
(such as xe) has the need to unmask Internal Errors.
Not sure if that's such a good idea...

Thanks,

Lukas
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by dan.j.williams@intel.com 2 weeks, 3 days ago
Lukas Wunner wrote:
> On Mon, Jan 19, 2026 at 06:09:39PM -0800, dan.j.williams@intel.com wrote:
> > Terry Bowman wrote:
> > > Internal PCIe errors are not enabled by default during initialization. This
> > > creates a problem for CXL drivers, which rely on PCIe Correctable and
> > > Uncorrectable Internal Errors to receive CXL protocol error notifications.
> > > 
> > > Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> > > enable internal PCIe errors.
> > 
> > I folded in the following to this patch because opening up internal
> > errors for PCIe drivers in general is not a goal.
> 
> As said, the "xe" driver needs to unmask Internal Errors and could
> take advantage of this helper, so I'd call opening this up for PCI
> drivers if not a goal then at least a "desirable side effect". ;)
> 
> https://lore.kernel.org/all/aR1_M_i3yIygd8v-@wunner.de/

I missed that earlier. How did xe manage to be the only device in the history
of Linux that needs internal errors unmasked?

What happens if Linux says "no, that error model has never been supported and
it creates in ongoing mental / maintenance load of internal errors do not
matter for PCIe, only CXL, (except xe)."

> >     +    Internal PCIe errors are not enabled by default during initialization
> >     +    because their behavior is too device-specific and there is no standard way
> >     +    to reason about them.
> 
> Well, they're not enabled by default because per the spec they're
> masked in the Uncorrectable Error Mask and Correctable Error Mask
> Registers.  It's up to drivers to unmask them if they know the
> hardware signals them.  CXL just happens be one of those drivers.
> 
> >      @@ drivers/pci/pcie/aer.c: static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
> >     -   mask &= ~PCI_ERR_COR_INTERNAL;
> >         pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
> >       }
> 
> Unexplained change vis-à-vis Terry's submission.  It seems you're
> reading the Correctable Error Mask Register and writing the same
> value back.  That's doesn't seem to make sense.

No, sorry, this an interdiff so that change was just a change in context.

It also caused me to do a double-take until I realized it was a pure hunk
context change.

> 
> >     -+EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
> >       
> >     ++/*
> >     ++ * Internal errors are too device-specific to enable generally, however for CXL
> >     ++ * their behavior is standardized for conveying CXL protocol errors.
> >     ++ */
> >     ++EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors, "cxl_core");
> >     ++
> 
> This change will require touching aer.c every time a driver
> (such as xe) has the need to unmask Internal Errors.
> Not sure if that's such a good idea...

The xe driver can always come back and change this to plain EXPORT_SYMBOL_GPL()
once the clear the hurdle above of, "please reconsider your error model to not
require this never needed before feature of AER".
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Lukas Wunner 2 weeks, 3 days ago
On Thu, Jan 22, 2026 at 08:48:36AM -0800, dan.j.williams@intel.com wrote:
> Lukas Wunner wrote:
> > As said, the "xe" driver needs to unmask Internal Errors and could
> > take advantage of this helper, so I'd call opening this up for PCI
> > drivers if not a goal then at least a "desirable side effect". ;)
> > 
> > https://lore.kernel.org/all/aR1_M_i3yIygd8v-@wunner.de/
> 
> I missed that earlier. How did xe manage to be the only device in the history
> of Linux that needs internal errors unmasked?
> 
> What happens if Linux says "no, that error model has never been supported and
> it creates in ongoing mental / maintenance load of internal errors do not
> matter for PCIe, only CXL, (except xe)."

Every spec-defined feature is fair game to be used by drivers and
denying them support would seem unreasonable.

> > >     -+EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
> > >       
> > >     ++/*
> > >     ++ * Internal errors are too device-specific to enable generally, however for CXL
> > >     ++ * their behavior is standardized for conveying CXL protocol errors.
> > >     ++ */
> > >     ++EXPORT_SYMBOL_FOR_MODULES(pci_aer_unmask_internal_errors, "cxl_core");
> > >     ++
> > 
> > This change will require touching aer.c every time a driver
> > (such as xe) has the need to unmask Internal Errors.
> > Not sure if that's such a good idea...
> 
> The xe driver can always come back and change this to plain
> EXPORT_SYMBOL_GPL() once the clear the hurdle above of,
> "please reconsider your error model to not require this
> never needed before feature of AER".

Of course, but it may annoy Bjorn that he'll have to deal with
an amendment of this macro for each individual driver that needs it,
or at least for the *next* driver that needs it.

Thanks,

Lukas
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Dave Jiang 3 weeks, 4 days ago

On 1/14/26 11:20 AM, Terry Bowman wrote:
> Internal PCIe errors are not enabled by default during initialization. This
> creates a problem for CXL drivers, which rely on PCIe Correctable and
> Uncorrectable Internal Errors to receive CXL protocol error notifications.
> 
> Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> enable internal PCIe errors.
> 
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>

Reviewed-by: Dave Jiang <dave.jiang@intel.com>

> 
> ---
> 
> Changes in v13->v14:
> - New commit. Bjorn requested separating out and adding immediatetly
> before being used. This is called from cxl_rch_enable_rcec() in
> following patch.
> ---
>  drivers/pci/pcie/aer.c | 6 +++---
>  include/linux/aer.h    | 2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index c99ba2a1159c..63658e691aa2 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -1120,8 +1120,6 @@ static bool find_source_device(struct pci_dev *parent,
>  	return true;
>  }
>  
> -#ifdef CONFIG_PCIEAER_CXL
> -
>  /**
>   * pci_aer_unmask_internal_errors - unmask internal errors
>   * @dev: pointer to the pci_dev data structure
> @@ -1132,7 +1130,7 @@ static bool find_source_device(struct pci_dev *parent,
>   * Note: AER must be enabled and supported by the device which must be
>   * checked in advance, e.g. with pcie_aer_is_native().
>   */
> -static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  {
>  	int aer = dev->aer_cap;
>  	u32 mask;
> @@ -1145,7 +1143,9 @@ static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  	mask &= ~PCI_ERR_COR_INTERNAL;
>  	pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
>  }
> +EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
>  
> +#ifdef CONFIG_PCIEAER_CXL
>  static bool is_cxl_mem_dev(struct pci_dev *dev)
>  {
>  	/*
> diff --git a/include/linux/aer.h b/include/linux/aer.h
> index 02940be66324..df0f5c382286 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -56,12 +56,14 @@ struct aer_capability_regs {
>  #if defined(CONFIG_PCIEAER)
>  int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
>  int pcie_aer_is_native(struct pci_dev *dev);
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev);
>  #else
>  static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
>  {
>  	return -EINVAL;
>  }
>  static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
> +static inline void pci_aer_unmask_internal_errors(struct pci_dev *dev) { }
>  #endif
>  
>  void pci_print_aer(struct pci_dev *dev, int aer_severity,
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Kuppuswamy Sathyanarayanan 3 weeks, 4 days ago

On 1/14/2026 10:20 AM, Terry Bowman wrote:
> Internal PCIe errors are not enabled by default during initialization. This
> creates a problem for CXL drivers, which rely on PCIe Correctable and
> Uncorrectable Internal Errors to receive CXL protocol error notifications.
> 
> Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> enable internal PCIe errors.
> 
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>
> 
> ---

Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>


> 
> Changes in v13->v14:
> - New commit. Bjorn requested separating out and adding immediatetly
> before being used. This is called from cxl_rch_enable_rcec() in
> following patch.
> ---
>  drivers/pci/pcie/aer.c | 6 +++---
>  include/linux/aer.h    | 2 ++
>  2 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index c99ba2a1159c..63658e691aa2 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -1120,8 +1120,6 @@ static bool find_source_device(struct pci_dev *parent,
>  	return true;
>  }
>  
> -#ifdef CONFIG_PCIEAER_CXL
> -
>  /**
>   * pci_aer_unmask_internal_errors - unmask internal errors
>   * @dev: pointer to the pci_dev data structure
> @@ -1132,7 +1130,7 @@ static bool find_source_device(struct pci_dev *parent,
>   * Note: AER must be enabled and supported by the device which must be
>   * checked in advance, e.g. with pcie_aer_is_native().
>   */
> -static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  {
>  	int aer = dev->aer_cap;
>  	u32 mask;
> @@ -1145,7 +1143,9 @@ static void pci_aer_unmask_internal_errors(struct pci_dev *dev)
>  	mask &= ~PCI_ERR_COR_INTERNAL;
>  	pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, mask);
>  }
> +EXPORT_SYMBOL_GPL(pci_aer_unmask_internal_errors);
>  
> +#ifdef CONFIG_PCIEAER_CXL
>  static bool is_cxl_mem_dev(struct pci_dev *dev)
>  {
>  	/*
> diff --git a/include/linux/aer.h b/include/linux/aer.h
> index 02940be66324..df0f5c382286 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -56,12 +56,14 @@ struct aer_capability_regs {
>  #if defined(CONFIG_PCIEAER)
>  int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
>  int pcie_aer_is_native(struct pci_dev *dev);
> +void pci_aer_unmask_internal_errors(struct pci_dev *dev);
>  #else
>  static inline int pci_aer_clear_nonfatal_status(struct pci_dev *dev)
>  {
>  	return -EINVAL;
>  }
>  static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
> +static inline void pci_aer_unmask_internal_errors(struct pci_dev *dev) { }
>  #endif
>  
>  void pci_print_aer(struct pci_dev *dev, int aer_severity,

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
Re: [PATCH v14 09/34] PCI/AER: Export pci_aer_unmask_internal_errors()
Posted by Jonathan Cameron 3 weeks, 4 days ago
On Wed, 14 Jan 2026 12:20:30 -0600
Terry Bowman <terry.bowman@amd.com> wrote:

> Internal PCIe errors are not enabled by default during initialization. This
> creates a problem for CXL drivers, which rely on PCIe Correctable and
> Uncorrectable Internal Errors to receive CXL protocol error notifications.
> 
> Export pci_aer_unmask_internal_errors() so CXL and other drivers can
> enable internal PCIe errors.
> 
> Signed-off-by: Terry Bowman <terry.bowman@amd.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>