summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime/fakepayload.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/runtime/fakepayload.C')
-rw-r--r--src/usr/runtime/fakepayload.C8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/usr/runtime/fakepayload.C b/src/usr/runtime/fakepayload.C
index 0600bfa68..0890ecdcd 100644
--- a/src/usr/runtime/fakepayload.C
+++ b/src/usr/runtime/fakepayload.C
@@ -70,7 +70,13 @@ void FakePayload::load()
// Copy over the fake payload code.
uint8_t* dest = reinterpret_cast<uint8_t*>(memArea) + entry;
- memcpy(dest, *(reinterpret_cast<void**>(&payload)), size);
+ union fn_ptr
+ {
+ void (*opd)();
+ uint64_t** data;
+ };
+ fn_ptr payload_code = { payload };
+ memcpy(dest, *payload_code.data, size);
// Invalidate the icache since this is instructions.
mm_icache_invalidate(memArea, ALIGN_8(safeClearArea) / sizeof(uint64_t));
OpenPOWER on IntegriCloud