diff options
author | Nicholas Piggin <npiggin@gmail.com> | 2017-08-30 16:20:11 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-09-04 20:45:35 -0500 |
commit | 7b7428fcea0ccc88b9a9e76adf98f5324dfb6014 (patch) | |
tree | 48aa764fb49851730b0388a037f21b9028b52430 | |
parent | d2a24406a49fae0948742ddaec1c29a92ca964d0 (diff) | |
download | skiboot-7b7428fcea0ccc88b9a9e76adf98f5324dfb6014.zip skiboot-7b7428fcea0ccc88b9a9e76adf98f5324dfb6014.tar.gz skiboot-7b7428fcea0ccc88b9a9e76adf98f5324dfb6014.tar.bz2 |
init: add missing sync_icache after exception vector patching
There are two cases where sync_icache is not called immediately
after instructions are modified.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | core/init.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/core/init.c b/core/init.c index a96a69c..8951e17 100644 --- a/core/init.c +++ b/core/init.c @@ -384,6 +384,7 @@ static bool load_kernel(void) if (kernel_entry < 0x2000) { cpu_set_pm_enable(false); memcpy(NULL, old_vectors, 0x2000); + sync_icache(); } do_stb = true; stb_container = kh; /* probably incorrect */ @@ -723,6 +724,7 @@ void setup_reset_vector(void) dst = (uint32_t *)0x100; while(src < &reset_patch_end) *(dst++) = *(src++); + sync_icache(); } void copy_exception_vectors(void) |