2021-08-06 02:45:54

by Aubrey Li

[permalink] [raw]
Subject: [PATCH] ACPI/PRM: Deal with table not present or no module found

On the system PRMT table is not present, dmesg output:

$ dmesg | grep PRM
[ 1.532237] ACPI: PRMT not present
[ 1.532237] PRM: found 4294967277 modules

The result of acpi_table_parse_entries need to be checked and return
immediately if PRMT table is not present or no PRM module found.

Signed-off-by: Aubrey Li <[email protected]>
---
drivers/acpi/prmt.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
index 31cf9ae..1f6007a 100644
--- a/drivers/acpi/prmt.c
+++ b/drivers/acpi/prmt.c
@@ -292,6 +292,12 @@ void __init init_prmt(void)
int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
sizeof (struct acpi_table_prmt_header),
0, acpi_parse_prmt, 0);
+ /*
+ * Return immediately if PRMT table is not present or no PRM module found.
+ */
+ if (mc <= 0)
+ return;
+
pr_info("PRM: found %u modules\n", mc);

status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,
--
2.7.4


2021-08-06 18:30:38

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] ACPI/PRM: Deal with table not present or no module found

On Fri, Aug 6, 2021 at 2:48 AM Aubrey Li <[email protected]> wrote:
>
> On the system PRMT table is not present, dmesg output:
>
> $ dmesg | grep PRM
> [ 1.532237] ACPI: PRMT not present
> [ 1.532237] PRM: found 4294967277 modules
>
> The result of acpi_table_parse_entries need to be checked and return
> immediately if PRMT table is not present or no PRM module found.
>
> Signed-off-by: Aubrey Li <[email protected]>
> ---
> drivers/acpi/prmt.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
> index 31cf9ae..1f6007a 100644
> --- a/drivers/acpi/prmt.c
> +++ b/drivers/acpi/prmt.c
> @@ -292,6 +292,12 @@ void __init init_prmt(void)
> int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
> sizeof (struct acpi_table_prmt_header),
> 0, acpi_parse_prmt, 0);
> + /*
> + * Return immediately if PRMT table is not present or no PRM module found.
> + */
> + if (mc <= 0)
> + return;
> +
> pr_info("PRM: found %u modules\n", mc);
>
> status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,
> --

Applied as 5.14-rc material, thanks!

However, since I'm on vacation next week, it will get into linux-next
after -rc6.

2021-08-08 14:54:00

by Li, Aubrey

[permalink] [raw]
Subject: Re: [PATCH] ACPI/PRM: Deal with table not present or no module found

On 8/6/21 9:23 PM, Rafael J. Wysocki wrote:
> On Fri, Aug 6, 2021 at 2:48 AM Aubrey Li <[email protected]> wrote:
>>
>> On the system PRMT table is not present, dmesg output:
>>
>> $ dmesg | grep PRM
>> [ 1.532237] ACPI: PRMT not present
>> [ 1.532237] PRM: found 4294967277 modules
>>
>> The result of acpi_table_parse_entries need to be checked and return
>> immediately if PRMT table is not present or no PRM module found.
>>
>> Signed-off-by: Aubrey Li <[email protected]>
>> ---
>> drivers/acpi/prmt.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
>> index 31cf9ae..1f6007a 100644
>> --- a/drivers/acpi/prmt.c
>> +++ b/drivers/acpi/prmt.c
>> @@ -292,6 +292,12 @@ void __init init_prmt(void)
>> int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
>> sizeof (struct acpi_table_prmt_header),
>> 0, acpi_parse_prmt, 0);
>> + /*
>> + * Return immediately if PRMT table is not present or no PRM module found.
>> + */
>> + if (mc <= 0)
>> + return;
>> +
>> pr_info("PRM: found %u modules\n", mc);
>>
>> status = acpi_install_address_space_handler(ACPI_ROOT_OBJECT,
>> --
>
> Applied as 5.14-rc material, thanks!
>
> However, since I'm on vacation next week, it will get into linux-next
> after -rc6.
>

Thanks Rafael!