aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZong Li <zongbox@gmail.com>2018-06-21 14:39:41 +0800
committerAndrew Waterman <aswaterman@gmail.com>2018-06-20 23:39:41 -0700
commit2cffbf5d8efd9822dbac98e2fde89adba871d4b0 (patch)
tree450b7d357f5fee9e128405385f171d4979729a70
parent10bf403ba8887e217bb1619efb92049c47ab8c01 (diff)
downloadpk-2cffbf5d8efd9822dbac98e2fde89adba871d4b0.zip
pk-2cffbf5d8efd9822dbac98e2fde89adba871d4b0.tar.gz
pk-2cffbf5d8efd9822dbac98e2fde89adba871d4b0.tar.bz2
Fix problem of casting u64 to void* on 32-bit environment (#111)
Can't cast to pointer from 64 bit size integer directly on 32 bit environment.
-rw-r--r--machine/fdt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/machine/fdt.c b/machine/fdt.c
index 27f5462..b6a7a4b 100644
--- a/machine/fdt.c
+++ b/machine/fdt.c
@@ -580,10 +580,10 @@ static void chosen_prop(const struct fdt_scan_prop *prop, void *extra)
if (!scan->chosen) return;
if (!strcmp(prop->name, "riscv,kernel-start")) {
fdt_get_address(prop->node->parent, prop->value, &val);
- scan->kernel_start = (void*)val;
+ scan->kernel_start = (void*)(uintptr_t)val;
} else if (!strcmp(prop->name, "riscv,kernel-end")) {
fdt_get_address(prop->node->parent, prop->value, &val);
- scan->kernel_end = (void*)val;
+ scan->kernel_end = (void*)(uintptr_t)val;
}
}