--- /dev/null
+From 61da50b76b62fd815aa82d853bf82bf4f69568f5 Mon Sep 17 00:00:00 2001
+From: Michael Ellerman <mpe@ellerman.id.au>
+Date: Sun, 1 Mar 2020 22:17:38 +1100
+Subject: powerpc/kuap: PPC_KUAP_DEBUG should depend on PPC_KUAP
+
+From: Michael Ellerman <mpe@ellerman.id.au>
+
+commit 61da50b76b62fd815aa82d853bf82bf4f69568f5 upstream.
+
+Currently you can enable PPC_KUAP_DEBUG when PPC_KUAP is disabled,
+even though the former has not effect without the latter.
+
+Fix it so that PPC_KUAP_DEBUG can only be enabled when PPC_KUAP is
+enabled, not when the platform could support KUAP (PPC_HAVE_KUAP).
+
+Fixes: 890274c2dc4c ("powerpc/64s: Implement KUAP for Radix MMU")
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/20200301111738.22497-1-mpe@ellerman.id.au
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/platforms/Kconfig.cputype | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/powerpc/platforms/Kconfig.cputype
++++ b/arch/powerpc/platforms/Kconfig.cputype
+@@ -389,7 +389,7 @@ config PPC_KUAP
+
+ config PPC_KUAP_DEBUG
+ bool "Extra debugging for Kernel Userspace Access Protection"
+- depends on PPC_HAVE_KUAP && (PPC_RADIX_MMU || PPC_32)
++ depends on PPC_KUAP && (PPC_RADIX_MMU || PPC_32)
+ help
+ Add extra debugging for Kernel Userspace Access Protection (KUAP)
+ If you're unsure, say N.
--- /dev/null
+From feb8e960d780e170e992a70491eec9dd68f4dbf2 Mon Sep 17 00:00:00 2001
+From: Christophe Leroy <christophe.leroy@c-s.fr>
+Date: Fri, 17 Apr 2020 11:58:36 +0000
+Subject: powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
+
+From: Christophe Leroy <christophe.leroy@c-s.fr>
+
+commit feb8e960d780e170e992a70491eec9dd68f4dbf2 upstream.
+
+CONFIG_PPC_KUAP_DEBUG is not selectable because it depends on PPC_32
+which doesn't exists.
+
+Fixing it leads to a deadlock due to a vital register getting
+clobbered in _switch().
+
+Change dependency to PPC32 and use r0 instead of r4 in _switch()
+
+Fixes: e2fb9f544431 ("powerpc/32: Prepare for Kernel Userspace Access Protection")
+Cc: stable@vger.kernel.org # v5.2+
+Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://lore.kernel.org/r/540242f7d4573f7cdf1b3bf46bb35f743b2cd68f.1587124651.git.christophe.leroy@c-s.fr
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/powerpc/kernel/entry_32.S | 2 +-
+ arch/powerpc/platforms/Kconfig.cputype | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/arch/powerpc/kernel/entry_32.S
++++ b/arch/powerpc/kernel/entry_32.S
+@@ -705,7 +705,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_SPE)
+ stw r10,_CCR(r1)
+ stw r1,KSP(r3) /* Set old stack pointer */
+
+- kuap_check r2, r4
++ kuap_check r2, r0
+ #ifdef CONFIG_SMP
+ /* We need a sync somewhere here to make sure that if the
+ * previous task gets rescheduled on another CPU, it sees all
+--- a/arch/powerpc/platforms/Kconfig.cputype
++++ b/arch/powerpc/platforms/Kconfig.cputype
+@@ -389,7 +389,7 @@ config PPC_KUAP
+
+ config PPC_KUAP_DEBUG
+ bool "Extra debugging for Kernel Userspace Access Protection"
+- depends on PPC_KUAP && (PPC_RADIX_MMU || PPC_32)
++ depends on PPC_KUAP && (PPC_RADIX_MMU || PPC32)
+ help
+ Add extra debugging for Kernel Userspace Access Protection (KUAP)
+ If you're unsure, say N.