diff options
Diffstat (limited to 'arch/powerpc/kernel/head_8xx.S')
-rw-r--r-- | arch/powerpc/kernel/head_8xx.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index ecc4a02277e3..84ca1d9b9ed3 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -318,12 +318,16 @@ InstructionTLBMiss: | |||
318 | /* If we are faulting a kernel address, we have to use the | 318 | /* If we are faulting a kernel address, we have to use the |
319 | * kernel page tables. | 319 | * kernel page tables. |
320 | */ | 320 | */ |
321 | #ifdef CONFIG_MODULES | ||
322 | /* Only modules will cause ITLB Misses as we always | ||
323 | * pin the first 8MB of kernel memory */ | ||
321 | andi. r11, r10, 0x0800 /* Address >= 0x80000000 */ | 324 | andi. r11, r10, 0x0800 /* Address >= 0x80000000 */ |
322 | beq 3f | 325 | beq 3f |
323 | lis r11, swapper_pg_dir@h | 326 | lis r11, swapper_pg_dir@h |
324 | ori r11, r11, swapper_pg_dir@l | 327 | ori r11, r11, swapper_pg_dir@l |
325 | rlwimi r10, r11, 0, 2, 19 | 328 | rlwimi r10, r11, 0, 2, 19 |
326 | 3: | 329 | 3: |
330 | #endif | ||
327 | lwz r11, 0(r10) /* Get the level 1 entry */ | 331 | lwz r11, 0(r10) /* Get the level 1 entry */ |
328 | rlwinm. r10, r11,0,0,19 /* Extract page descriptor page address */ | 332 | rlwinm. r10, r11,0,0,19 /* Extract page descriptor page address */ |
329 | beq 2f /* If zero, don't try to find a pte */ | 333 | beq 2f /* If zero, don't try to find a pte */ |