From 7599d2ddad492944df087dbf613442936f486837 Mon Sep 17 00:00:00 2001 From: Justin Hibbits Date: Sun, 14 Aug 2016 03:49:37 +0000 Subject: [PATCH] Only flush bp_kernload from the dcache, no need to sync the icache on the boot CPU. __syncicache() only syncs the icache on the current CPU, it doesn't touch the cache on any other core. Replace the call with cpu_flush_dcache() instead. Since bp_kernload is not touched again by the boot CPU in this code path, dcbf is no less efficient than the dcbst from __syncicache() by invalidating the cache line. --- sys/powerpc/mpc85xx/platform_mpc85xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/powerpc/mpc85xx/platform_mpc85xx.c b/sys/powerpc/mpc85xx/platform_mpc85xx.c index 8424aae8f64..00c8a17b443 100644 --- a/sys/powerpc/mpc85xx/platform_mpc85xx.c +++ b/sys/powerpc/mpc85xx/platform_mpc85xx.c @@ -404,7 +404,7 @@ mpc85xx_smp_start_cpu(platform_t plat, struct pcpu *pc) * bp_kernload is in the boot page. Sync the cache because ePAPR * booting has the other core(s) already running. */ - __syncicache(&bp_kernload, sizeof(bp_kernload)); + cpu_flush_dcache(&bp_kernload, sizeof(bp_kernload)); ap_pcpu = pc; __asm __volatile("msync; isync");