Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d069cb43 authored by Joakim Tjernlund's avatar Joakim Tjernlund Committed by Benjamin Herrenschmidt
Browse files

powerpc/8xx: Don't touch ACCESSED when no SWAP.



Only the swap function cares about the ACCESSED bit in
the pte. Do not waste cycles updateting ACCESSED when swap
is not compiled into the kernel.

Signed-off-by: default avatarJoakim Tjernlund <Joakim.Tjernlund@transmode.se>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 4afb0be7
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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 */