aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_8xx.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/kernel/head_8xx.S')
-rw-r--r--arch/powerpc/kernel/head_8xx.S4
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
3263: 3293:
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 */