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.
This commit is contained in:
parent
da974ed4ab
commit
7599d2ddad
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user