+++ /dev/null
-From 668208b161a0b679427e7d0f34c0a65fd7d23979 Mon Sep 17 00:00:00 2001
-From: Alexandre Ghiti <alexghiti@rivosinc.com>
-Date: Thu, 14 Aug 2025 12:06:14 +0000
-Subject: riscv: use an atomic xchg in pudp_huge_get_and_clear()
-
-From: Alexandre Ghiti <alexghiti@rivosinc.com>
-
-commit 668208b161a0b679427e7d0f34c0a65fd7d23979 upstream.
-
-Make sure we return the right pud value and not a value that could have
-been overwritten in between by a different core.
-
-Link: https://lkml.kernel.org/r/20250814-dev-alex-thp_pud_xchg-v1-1-b4704dfae206@rivosinc.com
-Fixes: c3cc2a4a3a23 ("riscv: Add support for PUD THP")
-Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
-Cc: Andrew Donnellan <ajd@linux.ibm.com>
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/riscv/include/asm/pgtable.h | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
---- a/arch/riscv/include/asm/pgtable.h
-+++ b/arch/riscv/include/asm/pgtable.h
-@@ -959,6 +959,17 @@ static inline pud_t pudp_huge_get_and_cl
- return pud;
- }
-
-+#define __HAVE_ARCH_PUDP_HUGE_GET_AND_CLEAR
-+static inline pud_t pudp_huge_get_and_clear(struct mm_struct *mm,
-+ unsigned long address, pud_t *pudp)
-+{
-+ pud_t pud = __pud(atomic_long_xchg((atomic_long_t *)pudp, 0));
-+
-+ page_table_check_pud_clear(mm, pud);
-+
-+ return pud;
-+}
-+
- static inline int pud_young(pud_t pud)
- {
- return pte_young(pud_pte(pud));
pwm-berlin-fix-wrong-register-in-suspend-resume.patch
pwm-fix-incorrect-variable-used-in-error-message.patch
revert-ipmi-fix-msg-stack-when-ipmi-is-disconnected.patch
-riscv-use-an-atomic-xchg-in-pudp_huge_get_and_clear.patch
sched-deadline-fix-race-in-push_dl_task.patch
scsi-hpsa-fix-potential-memory-leak-in-hpsa_big_passthru_ioctl.patch
scsi-sd-fix-build-warning-in-sd_revalidate_disk.patch