linux/arch/powerpc
Christophe Leroy f222ab83df powerpc: Add set_memory_{p/np}() and remove set_memory_attr()
set_memory_attr() was implemented by commit 4d1755b6a7 ("powerpc/mm:
implement set_memory_attr()") because the set_memory_xx() couldn't
be used at that time to modify memory "on the fly" as explained it
the commit.

But set_memory_attr() uses set_pte_at() which leads to warnings when
CONFIG_DEBUG_VM is selected, because set_pte_at() is unexpected for
updating existing page table entries.

The check could be bypassed by using __set_pte_at() instead,
as it was the case before commit c988cfd38e ("powerpc/32:
use set_memory_attr()") but since commit 9f7853d760 ("powerpc/mm:
Fix set_memory_*() against concurrent accesses") it is now possible
to use set_memory_xx() functions to update page table entries
"on the fly" because the update is now atomic.

For DEBUG_PAGEALLOC we need to clear and set back _PAGE_PRESENT.
Add set_memory_np() and set_memory_p() for that.

Replace all uses of set_memory_attr() by the relevant set_memory_xx()
and remove set_memory_attr().

Fixes: c988cfd38e ("powerpc/32: use set_memory_attr()")
Cc: stable@vger.kernel.org
Reported-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Maxime Bizon <mbizon@freebox.fr>
Reviewed-by: Russell Currey <ruscur@russell.cc>
Depends-on: 9f7853d760 ("powerpc/mm: Fix set_memory_*() against concurrent accesses")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/cda2b44b55c96f9ac69fa92e68c01084ec9495c5.1640344012.git.christophe.leroy@csgroup.eu
2022-02-12 22:47:42 +11:00
..
boot powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch 2022-02-02 20:32:10 +11:00
configs RTC for 5.17 2022-01-21 13:13:35 +02:00
crypto powerpc updates for 5.17 2022-01-14 15:17:26 +01:00
include powerpc: Add set_memory_{p/np}() and remove set_memory_attr() 2022-02-12 22:47:42 +11:00
kernel powerpc/ftrace: Remove ftrace_32.S 2022-02-12 22:47:28 +11:00
kexec powerpc: Set crashkernel offset to mid of RMA region 2022-02-07 15:26:12 +11:00
kvm KVM: PPC: Book3S HV Nested: Fix nested HFSCR being clobbered with multiple vCPUs 2022-01-25 16:39:41 +11:00
lib powerpc/32: Remove remaining .stabs annotations 2022-02-07 21:03:10 +11:00
math-emu powerpc/64s: avoid reloading (H)SRR registers if they are still valid 2021-06-25 00:06:55 +10:00
mm powerpc: Add set_memory_{p/np}() and remove set_memory_attr() 2022-02-12 22:47:42 +11:00
net powerpc64/bpf: Limit 'ldbrx' to processors compliant with ISA v2.06 2022-01-15 12:21:25 +11:00
perf powerpc/perf: Don't use perf_hw_context for trace IMC PMU 2022-02-03 22:32:54 +11:00
platforms powerpc/corenet: Change criteria to set MPIC_ENABLE_COREINT 2022-02-07 21:03:10 +11:00
purgatory powerpc/kexec: Don't use .machine ppc64 in trampoline_64.S 2021-04-08 21:17:43 +10:00
sysdev powerpc/corenet: Change criteria to set MPIC_ENABLE_COREINT 2022-02-07 21:03:10 +11:00
tools powerpc/head_check: Fix shellcheck errors 2021-08-17 22:52:02 +10:00
xmon powerpc/xmon: Dump XIVE information for online-only processors. 2022-01-06 21:47:00 +11:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig powerpc/ftrace: Implement CONFIG_DYNAMIC_FTRACE_WITH_ARGS 2022-02-07 21:03:11 +11:00
Kconfig.debug powerpc/ptdump: Convert powerpc to GENERIC_PTDUMP 2021-08-25 13:35:48 +10:00
Makefile powerpc: check for support for -Wa,-m{power4,any} 2021-12-23 22:35:12 +11:00
Makefile.postlink powerpc: unrel_branch_check.sh: use nm to find symbol value 2020-09-02 11:00:22 +10:00