diff mbox series

PCI/ACPI: Suppress missing MCFG message

Message ID 20200904170829.431900-1-jeremy.linton@arm.com (mailing list archive)
State Changes Requested, archived
Headers show
Series PCI/ACPI: Suppress missing MCFG message | expand

Commit Message

Jeremy Linton Sept. 4, 2020, 5:08 p.m. UTC
MCFG is an optional ACPI table. Given there are machines
without PCI(e) (or it is hidden) we have been receiving
queries/complaints about what this message means given
its being presented as an error.

Lets only print an error if something is wrong with the
the given table/etc. The ACPI table list printed at boot
will continue to provide a way to detect when the table
is missing.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
---
 drivers/acpi/pci_mcfg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hanjun Guo Sept. 7, 2020, 3:30 a.m. UTC | #1
Hi Jeremy,

On 2020/9/5 1:08, Jeremy Linton wrote:
> MCFG is an optional ACPI table. Given there are machines
> without PCI(e) (or it is hidden) we have been receiving
> queries/complaints about what this message means given
> its being presented as an error.
> 
> Lets only print an error if something is wrong with the
> the given table/etc. The ACPI table list printed at boot
> will continue to provide a way to detect when the table
> is missing.
> 
> Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
> ---
>   drivers/acpi/pci_mcfg.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
> index 54b36b7ad47d..0bc8c012f157 100644
> --- a/drivers/acpi/pci_mcfg.c
> +++ b/drivers/acpi/pci_mcfg.c
> @@ -279,6 +279,6 @@ static __init int pci_mcfg_parse(struct acpi_table_header *header)
>   void __init pci_mmcfg_late_init(void)
>   {
>   	int err = acpi_table_parse(ACPI_SIG_MCFG, pci_mcfg_parse);

acpi_table_parse() will return errno -ENODEV and -EINVAL, and only
returns -EINVAL if the table id or the handler is NULL, which is
impossible here.

> -	if (err)
> +	if (err && err != -ENODEV)

So the error message below will never be printed, I would
prefer update the pr_err() to pr_dbg() for optional ACPI
table.

>   		pr_err("Failed to parse MCFG (%d)\n", err);
>   }

Thanks
Hanjun
Jeremy Linton Sept. 7, 2020, 4:11 p.m. UTC | #2
Hi,

On 9/6/20 10:30 PM, Hanjun Guo wrote:
> Hi Jeremy,
> 
> On 2020/9/5 1:08, Jeremy Linton wrote:
>> MCFG is an optional ACPI table. Given there are machines
>> without PCI(e) (or it is hidden) we have been receiving
>> queries/complaints about what this message means given
>> its being presented as an error.
>>
>> Lets only print an error if something is wrong with the
>> the given table/etc. The ACPI table list printed at boot
>> will continue to provide a way to detect when the table
>> is missing.
>>
>> Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
>> ---
>>   drivers/acpi/pci_mcfg.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
>> index 54b36b7ad47d..0bc8c012f157 100644
>> --- a/drivers/acpi/pci_mcfg.c
>> +++ b/drivers/acpi/pci_mcfg.c
>> @@ -279,6 +279,6 @@ static __init int pci_mcfg_parse(struct 
>> acpi_table_header *header)
>>   void __init pci_mmcfg_late_init(void)
>>   {
>>       int err = acpi_table_parse(ACPI_SIG_MCFG, pci_mcfg_parse);
> 
> acpi_table_parse() will return errno -ENODEV and -EINVAL, and only
> returns -EINVAL if the table id or the handler is NULL, which is
> impossible here.

Right because it doesn't actually return the handler failures.
  >
>> -    if (err)
>> +    if (err && err != -ENODEV)
> 
> So the error message below will never be printed, I would
> prefer update the pr_err() to pr_dbg() for optional ACPI
> table.

Sure, that is a fine plan too.



> 
>>           pr_err("Failed to parse MCFG (%d)\n", err);
>>   }
> 
> Thanks
> Hanjun
>
diff mbox series

Patch

diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
index 54b36b7ad47d..0bc8c012f157 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -279,6 +279,6 @@  static __init int pci_mcfg_parse(struct acpi_table_header *header)
 void __init pci_mmcfg_late_init(void)
 {
 	int err = acpi_table_parse(ACPI_SIG_MCFG, pci_mcfg_parse);
-	if (err)
+	if (err && err != -ENODEV)
 		pr_err("Failed to parse MCFG (%d)\n", err);
 }