Commit d0ef6605 authored by Aubrey Li's avatar Aubrey Li Committed by Aubrey Li
Browse files

ACPI: PRM: Find PRMT table before parsing it

mainline inclusion
from mainline-v5.15
commit 3265cc3e
category: feature
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I6HNB8


CVE: N/A

Intel-SIG: commit 3265cc3e ACPI: PRM: Find PRMT table before
parsing it.
ACPI Platform Runtime Mechanism feature backport.

--------------------------------

Find and verify PRMT before parsing it, which eliminates a
warning on machines without PRMT:

	[    7.197173] ACPI: PRMT not present

Fixes: cefc7ca4 ("ACPI: PRM: implement OperationRegion handler for the PlatformRtMechanism subtype")
Signed-off-by: default avatarAubrey Li <aubrey.li@linux.intel.com>
Tested-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
Cc: 5.14+ <stable@vger.kernel.org> # 5.14+
[ rjw: Subject and changelog edits ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: default avatarAubrey Li <aubrey.li@linux.intel.com>
parent 4eb59dbc
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -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.
	 */