diff options
Diffstat (limited to 'arch/ppc/kernel/misc.S')
-rw-r--r-- | arch/ppc/kernel/misc.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index 2b81e71d6b2d..e0c850d85c53 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -499,12 +499,21 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | |||
499 | addi r3,r3,L1_CACHE_BYTES | 499 | addi r3,r3,L1_CACHE_BYTES |
500 | bdnz 0b | 500 | bdnz 0b |
501 | sync | 501 | sync |
502 | #ifndef CONFIG_44x | ||
503 | /* We don't flush the icache on 44x. Those have a virtual icache | ||
504 | * and we don't have access to the virtual address here (it's | ||
505 | * not the page vaddr but where it's mapped in user space). The | ||
506 | * flushing of the icache on these is handled elsewhere, when | ||
507 | * a change in the address space occurs, before returning to | ||
508 | * user space | ||
509 | */ | ||
502 | mtctr r4 | 510 | mtctr r4 |
503 | 1: icbi 0,r6 | 511 | 1: icbi 0,r6 |
504 | addi r6,r6,L1_CACHE_BYTES | 512 | addi r6,r6,L1_CACHE_BYTES |
505 | bdnz 1b | 513 | bdnz 1b |
506 | sync | 514 | sync |
507 | isync | 515 | isync |
516 | #endif /* CONFIG_44x */ | ||
508 | blr | 517 | blr |
509 | 518 | ||
510 | /* | 519 | /* |