Commit 0540b0d2 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman
Browse files

powerpc/40x: Always fault when _PAGE_ACCESSED is not set



The kernel expects pte_young() to work regardless of CONFIG_SWAP.

Make sure a minor fault is taken to set _PAGE_ACCESSED when it
is not already set, regardless of the selection of CONFIG_SWAP.

Fixes: 2c74e258 ("powerpc/40x: Rework 40x PTE access and TLB miss")
Cc: stable@vger.kernel.org
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/b02ca2ed2d3676a096219b48c0f69ec982a75bcf.1602342801.git.christophe.leroy@csgroup.eu
parent 11522448
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -284,11 +284,7 @@ _ENTRY(saved_ksp_limit)

	rlwimi	r11, r10, 22, 20, 29	/* Compute PTE address */
	lwz	r11, 0(r11)		/* Get Linux PTE */
#ifdef CONFIG_SWAP
	li	r9, _PAGE_PRESENT | _PAGE_ACCESSED
#else
	li	r9, _PAGE_PRESENT
#endif
	andc.	r9, r9, r11		/* Check permission */
	bne	5f

@@ -369,11 +365,7 @@ _ENTRY(saved_ksp_limit)

	rlwimi	r11, r10, 22, 20, 29	/* Compute PTE address */
	lwz	r11, 0(r11)		/* Get Linux PTE */
#ifdef CONFIG_SWAP
	li	r9, _PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC
#else
	li	r9, _PAGE_PRESENT | _PAGE_EXEC
#endif
	andc.	r9, r9, r11		/* Check permission */
	bne	5f