diff mbox series

[v2,1/4] ACPI: PRM: Change handler_addr type to void pointer

Message ID 20220628125346.693304-2-sudeep.holla@arm.com (mailing list archive)
State New, archived
Headers show
Series ACPI: Enable Platform Runtime Mechanism(PRM) support on ARM64 | expand

Commit Message

Sudeep Holla June 28, 2022, 12:53 p.m. UTC
handler_addr is a virtial address passed to efi_call_virt_pointer.
While x86 currently type cast it into the pointer in it's arch specific
arch_efi_call_virt() implementation, ARM64 is restrictive for right
reasons.

Convert the handler_addr type from u64 to void pointer.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/acpi/prmt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Ard Biesheuvel June 28, 2022, 5:06 p.m. UTC | #1
On Tue, 28 Jun 2022 at 14:53, Sudeep Holla <sudeep.holla@arm.com> wrote:
>
> handler_addr is a virtial address passed to efi_call_virt_pointer.
> While x86 currently type cast it into the pointer in it's arch specific
> arch_efi_call_virt() implementation, ARM64 is restrictive for right
> reasons.
>
> Convert the handler_addr type from u64 to void pointer.
>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>

> ---
>  drivers/acpi/prmt.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
> index 4d3a219c67f8..998101cf16e4 100644
> --- a/drivers/acpi/prmt.c
> +++ b/drivers/acpi/prmt.c
> @@ -53,7 +53,7 @@ static LIST_HEAD(prm_module_list);
>
>  struct prm_handler_info {
>         guid_t guid;
> -       u64 handler_addr;
> +       void *handler_addr;
>         u64 static_data_buffer_addr;
>         u64 acpi_param_buffer_addr;
>
> @@ -148,7 +148,7 @@ 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);
> -               th->handler_addr = efi_pa_va_lookup(handler_info->handler_address);
> +               th->handler_addr = (void *)efi_pa_va_lookup(handler_info->handler_address);
>                 th->static_data_buffer_addr = efi_pa_va_lookup(handler_info->static_data_buffer_address);
>                 th->acpi_param_buffer_addr = efi_pa_va_lookup(handler_info->acpi_param_buffer_address);
>         } while (++cur_handler < tm->handler_count && (handler_info = get_next_handler(handler_info)));
> --
> 2.37.0
>
diff mbox series

Patch

diff --git a/drivers/acpi/prmt.c b/drivers/acpi/prmt.c
index 4d3a219c67f8..998101cf16e4 100644
--- a/drivers/acpi/prmt.c
+++ b/drivers/acpi/prmt.c
@@ -53,7 +53,7 @@  static LIST_HEAD(prm_module_list);
 
 struct prm_handler_info {
 	guid_t guid;
-	u64 handler_addr;
+	void *handler_addr;
 	u64 static_data_buffer_addr;
 	u64 acpi_param_buffer_addr;
 
@@ -148,7 +148,7 @@  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);
-		th->handler_addr = efi_pa_va_lookup(handler_info->handler_address);
+		th->handler_addr = (void *)efi_pa_va_lookup(handler_info->handler_address);
 		th->static_data_buffer_addr = efi_pa_va_lookup(handler_info->static_data_buffer_address);
 		th->acpi_param_buffer_addr = efi_pa_va_lookup(handler_info->acpi_param_buffer_address);
 	} while (++cur_handler < tm->handler_count && (handler_info = get_next_handler(handler_info)));