lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <27ea8e21-062c-4b00-8331-115039398359@nvidia.com>
Date: Sun, 26 Jan 2025 11:18:10 +0800
From: Koba Ko <kobak@...dia.com>
To: Aubrey Li <aubrey.li@...ux.intel.com>,
 "Rafael J . Wysocki" <rafael@...nel.org>, Len Brown <lenb@...nel.org>,
 Zhang Rui <rui.zhang@...el.com>, Ard Biesheuvel <ardb@...nel.org>,
 "Matthew R . Ochs" <mochs@...dia.com>
Cc: linux-acpi@...r.kernel.org, linux-kernel@...r.kernel.org,
 Shi Liu <aurelianliu@...cent.com>, All applicable <stable@...r.kernel.org>
Subject: Re: [PATCH] ACPI: PRM: Remove unnecessary strict handler address
 checks

Since static_data_buffer_addr and acpi_param_buffer_addr
  would be passed to FW and OS doesn't use these two,
the responsibility of check is transferred to FW.

Please have my
Reviewed-by: Koba Ko <kobak@...dia.com>

On 1/26/25 10:22, Aubrey Li wrote:
> External email: Use caution opening links or attachments
>
>
> Commit 088984c8d54c ("ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM
> handler and context") added unnecessary strict handler address checks,
> caused the PRM module to fail in translating memory error addresses.
>
> Both static data buffer address and acpi parameter buffer address may
> be NULL if they are not needed, as described in section 4.1.2 PRM Handler
> Information Structure of Platform Runtime Mechanism specification [1].
>
> Here are two examples from real hardware:
>
> ----PRMT.dsl----
>
> - staic data address is not used
> [10Ch 0268   2]                     Revision : 0000
> [10Eh 0270   2]                       Length : 002C
> [110h 0272  16]                 Handler GUID : F6A58D47-E04F-4F5A-86B8-2A50D4AA109B
> [120h 0288   8]              Handler address : 0000000065CE51F4
> [128h 0296   8]           Satic Data Address : 0000000000000000
> [130h 0304   8]       ACPI Parameter Address : 000000006522A718
>
> - ACPI parameter address is not used
> [1B0h 0432   2]                     Revision : 0000
> [1B2h 0434   2]                       Length : 002C
> [1B4h 0436  16]                 Handler GUID : 657E8AE6-A8FC-4877-BB28-42E7DE1899A5
> [1C4h 0452   8]              Handler address : 0000000065C567C8
> [1CCh 0460   8]           Satic Data Address : 000000006113FB98
> [1D4h 0468   8]       ACPI Parameter Address : 0000000000000000
>
> Fixes: 088984c8d54c ("ACPI: PRM: Find EFI_MEMORY_RUNTIME block for PRM handler and context")
> Reported-and-tested-by: Shi Liu <aurelianliu@...cent.com>
> Cc: All applicable <stable@...r.kernel.org>
> Signed-off-by: Aubrey Li <aubrey.li@...ux.intel.com>
> Link: https://uefi.org/sites/default/files/resources/Platform%20Runtime%20Mechanism%20-%20with%20legal%20notice.pdf # [1]
> ---
>   drivers/acpi/prmt.c | 4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
> index 747f83f7114d..e549914a636c 100644
> --- a/drivers/acpi/prmt.c
> +++ b/drivers/acpi/prmt.c
> @@ -287,9 +287,7 @@ static acpi_status acpi_platformrt_space_handler(u32 function,
>                  if (!handler || !module)
>                          goto invalid_guid;
>
> -               if (!handler->handler_addr ||
> -                   !handler->static_data_buffer_addr ||
> -                   !handler->acpi_param_buffer_addr) {
> +               if (!handler->handler_addr) {
>                          buffer->prm_status = PRM_HANDLER_ERROR;
>                          return AE_OK;
>                  }
> --
> 2.34.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ