On 9/6/21 10:15 PM, Paul Menzel wrote:
Am 06.09.21 um 14:02 schrieb Rafael J. Wysocki:
This should be addressed by commit 2bbfa0addd63 "ACPI: PRM: Deal with
table not present or no module found", or yet another fix is needed.
Linux still warns on my systems with Linux 5.14 and Linus’ master in QEMU i440fx and an Asus F2A85-M PRO.
Does the following patch address your problem?
----------------------------------------------------------------------
From 52fda76410fcb7a3661687e960634d34fa44fb5f Mon Sep 17 00:00:00 2001
From: Aubrey Li <aubrey.li@xxxxxxxxx>
Date: Tue, 7 Sep 2021 11:06:59 +0800
Subject: [PATCH] ACPI/RPM: Find PRMT table before parse it
Find and verify PRMT table before parse it, this eliminates a
warning on machines without PRMT table.
Signed-off-by: Aubrey Li <aubrey.li@xxxxxxxxxxxxxxx>
---
drivers/acpi/prmt.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
index 1f6007a..89c22bc 100644
--- a/drivers/acpi/prmt.c
+++ b/drivers/acpi/prmt.c
@@ -288,10 +288,18 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
void __init init_prmt(void)
{
+ struct acpi_table_header *tbl;
acpi_status status;
- int mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
+ int mc;
+
+ status = acpi_get_table(ACPI_SIG_PRMT, 0, &tbl);
+ if (ACPI_FAILURE(status))
+ return;
+
+ mc = acpi_table_parse_entries(ACPI_SIG_PRMT, sizeof(struct acpi_table_prmt) +
sizeof (struct acpi_table_prmt_header),
0, acpi_parse_prmt, 0);
+ acpi_put_table(tbl);
/*
* Return immediately if PRMT table is not present or no PRM module found.
*/