Message ID | 20220628125346.693304-2-sudeep.holla@arm.com |
---|---|
State | Accepted |
Commit | 353efd5e97a7973d78f2634274b57309d0966e29 |
Headers | show |
Series | ACPI: Enable Platform Runtime Mechanism(PRM) support on ARM64 | expand |
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 --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)));
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(-)