From 59b54f3810311b0f7383c13ee7fa0aaaee59e019 Mon Sep 17 00:00:00 2001 From: Oscar Lesta Date: Sat, 31 Dec 2022 10:06:00 -0300 Subject: [PATCH] poke: use phys_addr_t for mem_map_args's physical_address field This is needed to fix usage of POKE_GET_PHYSICAL_ADDRESS on x86 32 bits (with PAE). Change-Id: Ic00185ec7fcf9b6666ad6169a752d8b8edd2b61b Reviewed-on: https://review.haiku-os.org/c/haiku/+/5975 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- headers/private/drivers/poke.h | 2 +- src/add-ons/kernel/drivers/misc/poke.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/headers/private/drivers/poke.h b/headers/private/drivers/poke.h index 334f55063c..fdbee2e988 100644 --- a/headers/private/drivers/poke.h +++ b/headers/private/drivers/poke.h @@ -60,7 +60,7 @@ typedef struct { uint32 signature; area_id area; const char* name; - void* physical_address; + phys_addr_t physical_address; size_t size; uint32 flags; uint32 protection; diff --git a/src/add-ons/kernel/drivers/misc/poke.cpp b/src/add-ons/kernel/drivers/misc/poke.cpp index 536745726a..bfbcfaefe7 100644 --- a/src/add-ons/kernel/drivers/misc/poke.cpp +++ b/src/add-ons/kernel/drivers/misc/poke.cpp @@ -285,8 +285,7 @@ poke_control(void* cookie, uint32 op, void* arg, size_t length) return B_BAD_VALUE; result = get_memory_map(ioctl.address, ioctl.size, &table, 1); - ioctl.physical_address = (void*)(addr_t)table.address; - // TODO: mem_map_args::physical_address should be phys_addr_t! + ioctl.physical_address = table.address; ioctl.size = table.size; if (user_memcpy(arg, &ioctl, sizeof(mem_map_args)) != B_OK) return B_BAD_ADDRESS;