diff options
author | Jerome Forissier | 2018-08-06 08:18:59 -0500 |
---|---|---|
committer | Jérôme Forissier | 2018-08-10 04:20:08 -0500 |
commit | 8742233f31d8acf17c252fbcb981d885144fe633 (patch) | |
tree | 94058a29e16d8c5e07274ca7de8f1fac89cde0e7 | |
parent | bd0e7c883a3912ed6958928b86fb4283f2014ca0 (diff) | |
download | ti-optee-client-8742233f31d8acf17c252fbcb981d885144fe633.tar.gz ti-optee-client-8742233f31d8acf17c252fbcb981d885144fe633.tar.xz ti-optee-client-8742233f31d8acf17c252fbcb981d885144fe633.zip |
benchmark: fix computation of page address
Subtracting the size *in bytes* from a (intptr_t *) is incorrect, since it
will subtract n * sizeof(intptr_t).
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r-- | libteec/src/teec_benchmark.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libteec/src/teec_benchmark.c b/libteec/src/teec_benchmark.c index e024f2d1..a59178ca 100644 --- a/libteec/src/teec_benchmark.c +++ b/libteec/src/teec_benchmark.c | |||
@@ -117,16 +117,16 @@ static TEEC_Result benchmark_get_bench_buf_paddr(uint64_t *paddr_ts_buf, | |||
117 | static void *mmap_paddr(intptr_t paddr, uint64_t size) | 117 | static void *mmap_paddr(intptr_t paddr, uint64_t size) |
118 | { | 118 | { |
119 | int devmem; | 119 | int devmem; |
120 | off_t offset = 0; | 120 | off_t offset; |
121 | off_t page_addr; | 121 | off_t page_addr; |
122 | intptr_t *hw_addr = (intptr_t *)paddr; | 122 | intptr_t *hw_addr; |
123 | 123 | ||
124 | devmem = open("/dev/mem", O_RDWR); | 124 | devmem = open("/dev/mem", O_RDWR); |
125 | if (!devmem) | 125 | if (!devmem) |
126 | return NULL; | 126 | return NULL; |
127 | 127 | ||
128 | offset = (off_t)(uintptr_t)hw_addr % getpagesize(); | 128 | offset = (off_t)paddr % getpagesize(); |
129 | page_addr = (off_t)(uintptr_t)(hw_addr - offset); | 129 | page_addr = (off_t)(paddr - offset); |
130 | 130 | ||
131 | hw_addr = (intptr_t *)mmap(0, size, PROT_READ|PROT_WRITE, | 131 | hw_addr = (intptr_t *)mmap(0, size, PROT_READ|PROT_WRITE, |
132 | MAP_SHARED, devmem, page_addr); | 132 | MAP_SHARED, devmem, page_addr); |