]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.19
authorSasha Levin <sashal@kernel.org>
Mon, 16 Oct 2023 02:50:08 +0000 (22:50 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 16 Oct 2023 02:50:08 +0000 (22:50 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.19/powerpc-64e-fix-wrong-test-in-__ptep_test_and_clear_.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/powerpc-64e-fix-wrong-test-in-__ptep_test_and_clear_.patch b/queue-4.19/powerpc-64e-fix-wrong-test-in-__ptep_test_and_clear_.patch
new file mode 100644 (file)
index 0000000..e6c66f9
--- /dev/null
@@ -0,0 +1,52 @@
+From 4b2b27cdb7b1b8ef74a692c9ffbc0c8308c862d3 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 25 Sep 2023 20:31:16 +0200
+Subject: powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
+
+From: Christophe Leroy <christophe.leroy@csgroup.eu>
+
+[ Upstream commit 5ea0bbaa32e8f54e9a57cfee4a3b8769b80be0d2 ]
+
+Commit 45201c879469 ("powerpc/nohash: Remove hash related code from
+nohash headers.") replaced:
+
+  if ((pte_val(*ptep) & (_PAGE_ACCESSED | _PAGE_HASHPTE)) == 0)
+       return 0;
+
+By:
+
+  if (pte_young(*ptep))
+       return 0;
+
+But it should be:
+
+  if (!pte_young(*ptep))
+       return 0;
+
+Fix it.
+
+Fixes: 45201c879469 ("powerpc/nohash: Remove hash related code from nohash headers.")
+Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Link: https://msgid.link/8bb7f06494e21adada724ede47a4c3d97e879d40.1695659959.git.christophe.leroy@csgroup.eu
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/powerpc/include/asm/nohash/64/pgtable.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/powerpc/include/asm/nohash/64/pgtable.h b/arch/powerpc/include/asm/nohash/64/pgtable.h
+index 7cd6809f4d332..30fcffc02caad 100644
+--- a/arch/powerpc/include/asm/nohash/64/pgtable.h
++++ b/arch/powerpc/include/asm/nohash/64/pgtable.h
+@@ -215,7 +215,7 @@ static inline int __ptep_test_and_clear_young(struct mm_struct *mm,
+ {
+       unsigned long old;
+-      if (pte_young(*ptep))
++      if (!pte_young(*ptep))
+               return 0;
+       old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0);
+       return (old & _PAGE_ACCESSED) != 0;
+-- 
+2.40.1
+
index 24616eacfe568b3ea3df4e117a2d9bd8c0d67e42..c77ed10cf846c47d2ecf7586c79b12324e971df2 100644 (file)
@@ -36,3 +36,4 @@ cgroup-remove-duplicates-in-cgroup-v1-tasks-file.patch
 pinctrl-avoid-unsafe-code-pattern-in-find_pinctrl.patch
 usb-gadget-udc-xilinx-replace-memcpy-with-memcpy_toio.patch
 usb-gadget-ncm-handle-decoding-of-multiple-ntb-s-in-unwrap-call.patch
+powerpc-64e-fix-wrong-test-in-__ptep_test_and_clear_.patch