|
@@ -343,10 +343,11 @@ InstructionTLBMiss:
|
|
|
mfspr r11, SPRN_MD_TWC /* ....and get the pte address */
|
|
|
lwz r10, 0(r11) /* Get the pte */
|
|
|
|
|
|
+#ifdef CONFIG_SWAP
|
|
|
andi. r11, r10, _PAGE_ACCESSED | _PAGE_PRESENT
|
|
|
cmpwi cr0, r11, _PAGE_ACCESSED | _PAGE_PRESENT
|
|
|
bne- cr0, 2f
|
|
|
-
|
|
|
+#endif
|
|
|
/* The Linux PTE won't go exactly into the MMU TLB.
|
|
|
* Software indicator bits 21 and 28 must be clear.
|
|
|
* Software indicator bits 24, 25, 26, and 27 must be
|
|
@@ -439,10 +440,11 @@ DataStoreTLBMiss:
|
|
|
* r11 = ((r10 & PRESENT) & ((r10 & ACCESSED) >> 5));
|
|
|
* r10 = (r10 & ~PRESENT) | r11;
|
|
|
*/
|
|
|
+#ifdef CONFIG_SWAP
|
|
|
rlwinm r11, r10, 32-5, _PAGE_PRESENT
|
|
|
and r11, r11, r10
|
|
|
rlwimi r10, r11, 0, _PAGE_PRESENT
|
|
|
-
|
|
|
+#endif
|
|
|
/* Honour kernel RO, User NA */
|
|
|
/* 0x200 == Extended encoding, bit 22 */
|
|
|
rlwimi r10, r10, 32-2, 0x200 /* Copy USER to bit 22, 0x200 */
|