devmem: use mmap64 replace mmap
xiechengliang
xiechengliang1 at huawei.com
Mon Sep 27 14:06:15 UTC 2021
Subject: [PATCH] devmem: The type of the physical address to be accessed by
devmem is off_t, when the 32-bit Linux kernel support lpae, the physical
address can exceed 4G, and accessing or modifying the address exceeding 4G
will cause truncation.
function old new delta
do_cmd 127 127 +0
Signed-off-by: xiechengliang <xiechengliang1 at huawei.com<mailto:xiechengliang1 at huawei.com>>
---
miscutils/devmem.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/miscutils/devmem.c b/miscutils/devmem.c
index f9f0276bc..594bb440c 100644
--- a/miscutils/devmem.c
+++ b/miscutils/devmem.c
@@ -30,7 +30,7 @@ int devmem_main(int argc UNUSED_PARAM, char **argv)
void *map_base, *virt_addr;
uint64_t read_result;
uint64_t writeval = writeval; /* for compiler */
- off_t target;
+ uint64_t target;
unsigned page_size, mapped_size, offset_in_page;
int fd;
unsigned width = 8 * sizeof(int);
@@ -82,12 +82,12 @@ int devmem_main(int argc UNUSED_PARAM, char **argv)
* Must map two pages to make it possible: */
mapped_size *= 2;
}
- map_base = mmap(NULL,
+ map_base = mmap64(NULL,
mapped_size,
argv[3] ? (PROT_READ | PROT_WRITE) : PROT_READ,
MAP_SHARED,
fd,
- target & ~(off_t)(page_size - 1));
+ target & ~(uint64_t)(page_size - 1));
if (map_base == MAP_FAILED)
bb_simple_perror_msg_and_die("mmap");
--
2.12.3
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/busybox/attachments/20210927/13026c44/attachment.html>
More information about the busybox
mailing list