This series of patches fixes the appropriate _OSC check for CXL RAS
registers.
First patch moves around pcie_aer_is_native() function declaration to a
common location to be used by cxl/pci module.
Second patch addresses the _OSC check.
Smita Koralahalli (2):
PCI, AER: Export and make pcie_aer_is_native() global
cxl/pci: Fix appropriate checking for _OSC while handling CXL RAS
registers
drivers/cxl/pci.c | 7 +++----
drivers/pci/pcie/aer.c | 1 +
drivers/pci/pcie/portdrv.h | 2 --
include/linux/aer.h | 2 ++
4 files changed, 6 insertions(+), 6 deletions(-)
--
2.17.1
Export and move the declaration of pcie_aer_is_native() to a common header
file to be reused by cxl/pci module.
Signed-off-by: Smita Koralahalli <[email protected]>
---
drivers/pci/pcie/aer.c | 1 +
drivers/pci/pcie/portdrv.h | 2 --
include/linux/aer.h | 2 ++
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
index f6c24ded134c..87d90dbda023 100644
--- a/drivers/pci/pcie/aer.c
+++ b/drivers/pci/pcie/aer.c
@@ -229,6 +229,7 @@ int pcie_aer_is_native(struct pci_dev *dev)
return pcie_ports_native || host->native_aer;
}
+EXPORT_SYMBOL_GPL(pcie_aer_is_native);
int pci_enable_pcie_error_reporting(struct pci_dev *dev)
{
diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
index 58a2b1a1cae4..1f3803bde7ee 100644
--- a/drivers/pci/pcie/portdrv.h
+++ b/drivers/pci/pcie/portdrv.h
@@ -29,10 +29,8 @@ extern bool pcie_ports_dpc_native;
#ifdef CONFIG_PCIEAER
int pcie_aer_init(void);
-int pcie_aer_is_native(struct pci_dev *dev);
#else
static inline int pcie_aer_init(void) { return 0; }
-static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
#endif
#ifdef CONFIG_HOTPLUG_PCI_PCIE
diff --git a/include/linux/aer.h b/include/linux/aer.h
index 3a3ab05e13fd..94ce49a5f8d5 100644
--- a/include/linux/aer.h
+++ b/include/linux/aer.h
@@ -45,6 +45,7 @@ struct aer_capability_regs {
int pci_enable_pcie_error_reporting(struct pci_dev *dev);
int pci_disable_pcie_error_reporting(struct pci_dev *dev);
int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
+int pcie_aer_is_native(struct pci_dev *dev);
#else
static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
{
@@ -58,6 +59,7 @@ 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; }
#endif
void cper_print_aer(struct pci_dev *dev, int aer_severity,
--
2.17.1
On Wed, Jul 19, 2023 at 07:23:12PM +0000, Smita Koralahalli wrote:
> Export and move the declaration of pcie_aer_is_native() to a common header
> file to be reused by cxl/pci module.
Run "git log --oneline drivers/pci/pcie/aer.c" and format your subject
line to match.
"Exporting" pretty much means making it global, so "Export
pcie_aer_is_native()" is probably enough.
> Signed-off-by: Smita Koralahalli <[email protected]>
With the above,
Acked-by: Bjorn Helgaas <[email protected]>
> ---
> drivers/pci/pcie/aer.c | 1 +
> drivers/pci/pcie/portdrv.h | 2 --
> include/linux/aer.h | 2 ++
> 3 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index f6c24ded134c..87d90dbda023 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -229,6 +229,7 @@ int pcie_aer_is_native(struct pci_dev *dev)
>
> return pcie_ports_native || host->native_aer;
> }
> +EXPORT_SYMBOL_GPL(pcie_aer_is_native);
>
> int pci_enable_pcie_error_reporting(struct pci_dev *dev)
> {
> diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
> index 58a2b1a1cae4..1f3803bde7ee 100644
> --- a/drivers/pci/pcie/portdrv.h
> +++ b/drivers/pci/pcie/portdrv.h
> @@ -29,10 +29,8 @@ extern bool pcie_ports_dpc_native;
>
> #ifdef CONFIG_PCIEAER
> int pcie_aer_init(void);
> -int pcie_aer_is_native(struct pci_dev *dev);
> #else
> static inline int pcie_aer_init(void) { return 0; }
> -static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
> #endif
>
> #ifdef CONFIG_HOTPLUG_PCI_PCIE
> diff --git a/include/linux/aer.h b/include/linux/aer.h
> index 3a3ab05e13fd..94ce49a5f8d5 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -45,6 +45,7 @@ struct aer_capability_regs {
> int pci_enable_pcie_error_reporting(struct pci_dev *dev);
> int pci_disable_pcie_error_reporting(struct pci_dev *dev);
> int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
> +int pcie_aer_is_native(struct pci_dev *dev);
> #else
> static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
> {
> @@ -58,6 +59,7 @@ 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; }
> #endif
>
> void cper_print_aer(struct pci_dev *dev, int aer_severity,
> --
> 2.17.1
>
On 7/19/23 12:23 PM, Smita Koralahalli wrote:
> Export and move the declaration of pcie_aer_is_native() to a common header
> file to be reused by cxl/pci module.
>
> Signed-off-by: Smita Koralahalli <[email protected]>
Looks good to me.
Reviewed-by: Kuppuswamy Sathyanarayanan <[email protected]>
> ---
> drivers/pci/pcie/aer.c | 1 +
> drivers/pci/pcie/portdrv.h | 2 --
> include/linux/aer.h | 2 ++
> 3 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
> index f6c24ded134c..87d90dbda023 100644
> --- a/drivers/pci/pcie/aer.c
> +++ b/drivers/pci/pcie/aer.c
> @@ -229,6 +229,7 @@ int pcie_aer_is_native(struct pci_dev *dev)
>
> return pcie_ports_native || host->native_aer;
> }
> +EXPORT_SYMBOL_GPL(pcie_aer_is_native);
>
> int pci_enable_pcie_error_reporting(struct pci_dev *dev)
> {
> diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
> index 58a2b1a1cae4..1f3803bde7ee 100644
> --- a/drivers/pci/pcie/portdrv.h
> +++ b/drivers/pci/pcie/portdrv.h
> @@ -29,10 +29,8 @@ extern bool pcie_ports_dpc_native;
>
> #ifdef CONFIG_PCIEAER
> int pcie_aer_init(void);
> -int pcie_aer_is_native(struct pci_dev *dev);
> #else
> static inline int pcie_aer_init(void) { return 0; }
> -static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
> #endif
>
> #ifdef CONFIG_HOTPLUG_PCI_PCIE
> diff --git a/include/linux/aer.h b/include/linux/aer.h
> index 3a3ab05e13fd..94ce49a5f8d5 100644
> --- a/include/linux/aer.h
> +++ b/include/linux/aer.h
> @@ -45,6 +45,7 @@ struct aer_capability_regs {
> int pci_enable_pcie_error_reporting(struct pci_dev *dev);
> int pci_disable_pcie_error_reporting(struct pci_dev *dev);
> int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
> +int pcie_aer_is_native(struct pci_dev *dev);
> #else
> static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
> {
> @@ -58,6 +59,7 @@ 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; }
> #endif
>
> void cper_print_aer(struct pci_dev *dev, int aer_severity,
--
Sathyanarayanan Kuppuswamy
Linux Kernel Developer
On 7/19/2023 1:36 PM, Bjorn Helgaas wrote:
> On Wed, Jul 19, 2023 at 07:23:12PM +0000, Smita Koralahalli wrote:
>> Export and move the declaration of pcie_aer_is_native() to a common header
>> file to be reused by cxl/pci module.
>
> Run "git log --oneline drivers/pci/pcie/aer.c" and format your subject
> line to match.
>
> "Exporting" pretty much means making it global, so "Export
> pcie_aer_is_native()" is probably enough.
>
>> Signed-off-by: Smita Koralahalli <[email protected]>
>
> With the above,
Will make the above two changes in v2. Thanks for the review!
Thanks,
Smita
>
> Acked-by: Bjorn Helgaas <[email protected]>
>
>> ---
>> drivers/pci/pcie/aer.c | 1 +
>> drivers/pci/pcie/portdrv.h | 2 --
>> include/linux/aer.h | 2 ++
>> 3 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c
>> index f6c24ded134c..87d90dbda023 100644
>> --- a/drivers/pci/pcie/aer.c
>> +++ b/drivers/pci/pcie/aer.c
>> @@ -229,6 +229,7 @@ int pcie_aer_is_native(struct pci_dev *dev)
>>
>> return pcie_ports_native || host->native_aer;
>> }
>> +EXPORT_SYMBOL_GPL(pcie_aer_is_native);
>>
>> int pci_enable_pcie_error_reporting(struct pci_dev *dev)
>> {
>> diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
>> index 58a2b1a1cae4..1f3803bde7ee 100644
>> --- a/drivers/pci/pcie/portdrv.h
>> +++ b/drivers/pci/pcie/portdrv.h
>> @@ -29,10 +29,8 @@ extern bool pcie_ports_dpc_native;
>>
>> #ifdef CONFIG_PCIEAER
>> int pcie_aer_init(void);
>> -int pcie_aer_is_native(struct pci_dev *dev);
>> #else
>> static inline int pcie_aer_init(void) { return 0; }
>> -static inline int pcie_aer_is_native(struct pci_dev *dev) { return 0; }
>> #endif
>>
>> #ifdef CONFIG_HOTPLUG_PCI_PCIE
>> diff --git a/include/linux/aer.h b/include/linux/aer.h
>> index 3a3ab05e13fd..94ce49a5f8d5 100644
>> --- a/include/linux/aer.h
>> +++ b/include/linux/aer.h
>> @@ -45,6 +45,7 @@ struct aer_capability_regs {
>> int pci_enable_pcie_error_reporting(struct pci_dev *dev);
>> int pci_disable_pcie_error_reporting(struct pci_dev *dev);
>> int pci_aer_clear_nonfatal_status(struct pci_dev *dev);
>> +int pcie_aer_is_native(struct pci_dev *dev);
>> #else
>> static inline int pci_enable_pcie_error_reporting(struct pci_dev *dev)
>> {
>> @@ -58,6 +59,7 @@ 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; }
>> #endif
>>
>> void cper_print_aer(struct pci_dev *dev, int aer_severity,
>> --
>> 2.17.1
>>