On 9/7/21 3:22 PM, Paul Menzel wrote: > Dear Aubrey, > > > Thank you very much for quick reply. > > > Am 07.09.21 um 05:26 schrieb Aubrey Li: > >> 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? > > Yes, it does. With this patch cherry-picked to my Linux tree, the warning is gone in QEMU. > > qemu-system-x86_64 -kernel /dev/shm/bzImage -append "earlyprintk=serial,ttyS0,keep console=ttyS0,115200 console=tty0" -display none -serial stdio > > (I have to check my configuration, why normal serial console does not work in QEMU.) > >> ---------------------------------------------------------------------- >> 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 > > What does RPM mean? PRM, Platform Runtime Mechanism: https://uefi.org/sites/default/files/resources/Platform%20Runtime%20Mechanism%20-%20with%20legal%20notice.pdf > >> Find and verify PRMT table before parse it, this eliminates a >> warning on machines without PRMT table. > > Please paste the warning for people grepping the commit messages. > > ACPI: PRMT not present Nice suggestion. > >> 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. >> */ >> > > Tested-by: Paul Menzel <pmenzel@xxxxxxxxxxxxx> Thanks for testing, I'll send a formal patch to Rafael. > > > Kind regards, > > Paul