mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
ACPI: PRM: Skip handlers with NULL handler_address or NULL VA
[ Upstream commit 311942ce763e21dacef7e53996d5a1e19b8adab1 ] If handler_address or mapped VA is NULL, the related buffer address and VA can be ignored, so make acpi_parse_prmt() skip the current handler in those cases. Signed-off-by: Shang song (Lenovo) <shangsong2@foxmail.com> Link: https://patch.msgid.link/20250826030229.834901-1-shangsong2@foxmail.com [ rjw: Subject and changelog edits ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3e12147902
commit
338f490a04
@@ -150,15 +150,28 @@ acpi_parse_prmt(union acpi_subtable_headers *header, const unsigned long end)
|
||||
th = &tm->handlers[cur_handler];
|
||||
|
||||
guid_copy(&th->guid, (guid_t *)handler_info->handler_guid);
|
||||
|
||||
/*
|
||||
* Print an error message if handler_address is NULL, the parse of VA also
|
||||
* can be skipped.
|
||||
*/
|
||||
if (unlikely(!handler_info->handler_address)) {
|
||||
pr_info("Skipping handler with NULL address for GUID: %pUL",
|
||||
(guid_t *)handler_info->handler_guid);
|
||||
continue;
|
||||
}
|
||||
|
||||
th->handler_addr =
|
||||
(void *)efi_pa_va_lookup(&th->guid, handler_info->handler_address);
|
||||
/*
|
||||
* Print a warning message if handler_addr is zero which is not expected to
|
||||
* ever happen.
|
||||
* Print a warning message and skip the parse of VA if handler_addr is zero
|
||||
* which is not expected to ever happen.
|
||||
*/
|
||||
if (unlikely(!th->handler_addr))
|
||||
if (unlikely(!th->handler_addr)) {
|
||||
pr_warn("Failed to find VA of handler for GUID: %pUL, PA: 0x%llx",
|
||||
&th->guid, handler_info->handler_address);
|
||||
continue;
|
||||
}
|
||||
|
||||
th->static_data_buffer_addr =
|
||||
efi_pa_va_lookup(&th->guid, handler_info->static_data_buffer_address);
|
||||
|
||||
Reference in New Issue
Block a user