mirror-linux/arch/riscv/include/asm
Alexandre Ghiti 546e42c8c6 riscv: Use an atomic xchg in pudp_huge_get_and_clear()
Make sure we return the right pud value and not a value that could
have been overwritten in between by a different core.

Fixes: c3cc2a4a3a ("riscv: Add support for PUD THP")
Cc: stable@vger.kernel.org
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20250814-dev-alex-thp_pud_xchg-v1-1-b4704dfae206@rivosinc.com
[pjw@kernel.org: use xchg rather than atomic_long_xchg; avoid atomic op for !CONFIG_SMP like x86]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2025-09-23 18:25:52 -06:00
..
vdso RISC-V: vDSO: Correct inline assembly constraints in the getrandom syscall wrapper 2025-06-12 12:13:57 -07:00
vendor_extensions riscv: Add SiFive xsfvfwmaccqqq vendor extension 2025-05-08 11:01:44 -07:00
Kbuild fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
acenv.h
acpi.h ACPI: RISCV: Make acpi_numa_get_nid() to be static 2024-09-17 12:02:48 -07:00
alternative-macros.h riscv: Provide all alternative macros all the time 2025-04-14 13:07:08 +00:00
alternative.h
arch_hweight.h RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
archrandom.h
asm-extable.h
asm-offsets.h
asm-prototypes.h RISC-V Patches for the 6.16 Merge Window, Part 1 2025-06-06 18:05:18 -07:00
asm.h riscv: use lw when reading int cpu in asm_per_cpu 2025-09-05 15:31:24 -06:00
assembler.h
atomic.h Merge patch series "Rework & improve riscv cmpxchg.h and atomic.h" 2024-04-28 14:50:33 -07:00
barrier.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
bitops.h RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
bug.h riscv/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust 2025-07-23 00:04:53 +02:00
bugs.h riscv: Add ghostwrite vulnerability 2025-01-18 12:33:39 -08:00
cache.h riscv: mm: still create swiotlb buffer for kmalloc() bouncing if required 2024-04-30 10:35:45 -07:00
cacheflush.h Merge tag 'riscv-mw2-6.16-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/alexghiti/linux into for-next 2025-06-05 14:03:16 -07:00
cacheinfo.h
cfi.h cfi: Move BPF CFI types and helpers to generic code 2025-07-31 18:23:53 -07:00
checksum.h RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
clint.h
clocksource.h
cmpxchg.h riscv: xchg: Prefetch the destination word for sc.w 2025-06-05 11:09:39 -07:00
compat.h RISC-V: Remove unnecessary include from compat.h 2024-11-26 11:48:53 -08:00
cpu.h
cpu_ops.h
cpu_ops_sbi.h
cpufeature-macros.h riscv: Move cpufeature.h macros into their own header 2024-11-11 07:33:08 -08:00
cpufeature.h riscv: misaligned: add a function to check misalign trap delegability 2025-06-04 15:11:07 -07:00
cpuidle.h
crash_reserve.h
csr.h Merge patch series "riscv: Add support for xtheadvector" 2025-01-18 12:33:43 -08:00
current.h
delay.h
dma-noncoherent.h
dmi.h riscv: dmi: Add SMBIOS/DMI support 2024-06-26 08:02:33 -07:00
efi.h
elf.h riscv: Introduce set_compat_task() in asm/compat.h 2024-03-19 16:39:40 -07:00
entry-common.h riscv: Fix default misaligned access trap 2024-11-12 14:45:26 -08:00
errata_list.h riscv: Add ghostwrite vulnerability 2025-01-18 12:33:39 -08:00
exec.h riscv: Randomize lower bits of stack address 2024-09-17 08:05:10 -07:00
extable.h
fence.h riscv: Add license to fence.h 2024-09-03 07:18:33 -07:00
fixmap.h
fpu.h riscv: add support for kernel-mode FPU 2024-05-19 14:36:19 -07:00
ftrace.h riscv: ftrace: support direct call using call_ops 2025-06-05 11:09:31 -07:00
futex.h riscv/futex: sign extend compare value in atomic cmpxchg 2025-02-14 13:06:31 -08:00
gdb_xml.h
gpr-num.h
hugetlb.h mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() 2025-02-27 17:40:57 +00:00
hwcap.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
hwprobe.h riscv: hwprobe: Add SiFive vendor extension support and probe for xsfqmaccdod and xsfqmaccqoq 2025-05-08 11:01:43 -07:00
image.h riscv: kexec_file: Support loading Image binary file 2025-06-05 11:09:34 -07:00
insn-def.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
insn.h RISC-V: fix vector insn load/store width mask 2024-06-25 08:47:10 -07:00
io.h - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
irq.h riscv: Helper to parse hart index 2025-06-26 16:06:40 +02:00
irq_stack.h
irq_work.h
irqflags.h riscv: Remove unnecessary irqflags processor.h include 2024-04-16 18:50:52 -07:00
jump_label.h jump_label: adjust inline asm to be consistent 2024-11-04 16:21:45 -05:00
kasan.h riscv: mm: Pre-allocate vmemmap/direct map/kasan PGD entries 2024-06-26 08:42:39 -07:00
kdebug.h
kexec.h riscv: kexec_file: Support loading Image binary file 2025-06-05 11:09:34 -07:00
kfence.h riscv: Fix IPIs usage in kfence_protect_page() 2024-12-11 11:44:03 -08:00
kgdb.h riscv: KGDB: Do not inline arch_kgdb_breakpoint() 2025-04-16 07:29:33 -07:00
kprobes.h
kvm_aia.h RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init() 2025-07-28 22:27:07 +05:30
kvm_gstage.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_host.h RISC-V: KVM: Delegate illegal instruction fault to VS mode 2025-07-28 22:27:40 +05:30
kvm_mmu.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_nacl.h RISC-V: KVM: Use SBI sync SRET call when available 2024-10-28 16:44:03 +05:30
kvm_tlb.h RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIs 2025-07-28 22:27:32 +05:30
kvm_types.h
kvm_vcpu_fp.h
kvm_vcpu_insn.h
kvm_vcpu_pmu.h RISC-V: KVM: Fix to allow hpmcounter31 from the guest 2024-08-19 08:58:21 +05:30
kvm_vcpu_sbi.h RISC-V: KVM: add SBI extension reset callback 2025-07-23 17:19:44 +05:30
kvm_vcpu_timer.h
kvm_vcpu_vector.h KVM: RISC-V: refactor vector state reset 2025-05-21 09:34:46 +05:30
kvm_vmid.h RISC-V: KVM: Factor-out MMU related declarations into separate headers 2025-07-28 22:27:23 +05:30
linkage.h
membarrier.h
mmio.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmiowb.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmu.h riscv: Add support for the tagged address ABI 2024-10-24 14:12:56 -07:00
mmu_context.h riscv: Add support for the tagged address ABI 2024-10-24 14:12:56 -07:00
module.h
module.lds.h
numa.h
page.h riscv: Remove CONFIG_PAGE_OFFSET 2025-03-26 15:56:46 -07:00
paravirt.h
paravirt_api_clock.h
pci.h
perf_event.h The biggest change here is eliminating the awful idea that KVM had, of 2024-11-23 16:00:50 -08:00
pgalloc.h riscv: pgtable: unconditionally use tlb_remove_ptdesc() 2025-04-01 15:17:14 -07:00
pgtable-32.h
pgtable-64.h mm: remove devmap related functions and page table bits 2025-07-09 22:42:18 -07:00
pgtable-bits.h mm: remove devmap related functions and page table bits 2025-07-09 22:42:18 -07:00
pgtable.h riscv: Use an atomic xchg in pudp_huge_get_and_clear() 2025-09-23 18:25:52 -06:00
probes.h
processor.h riscv: uaccess: Only restore the CSR_STATUS SUM bit 2025-06-05 14:03:17 -07:00
ptrace.h riscv: Make regs_irqs_disabled() more clear 2025-06-05 11:10:17 -07:00
runtime-const.h riscv: fix runtime constant support for nommu kernels 2025-06-10 18:19:33 -07:00
sbi.h riscv: sbi: add FWFT extension interface 2025-06-04 15:11:01 -07:00
scs.h
seccomp.h
sections.h
semihost.h
set_memory.h arch: introduce set_direct_map_valid_noflush() 2024-11-07 14:25:15 -08:00
signal32.h
simd.h riscv: vector: Fix a typo of preempt_v 2024-03-15 10:17:38 -07:00
smp.h riscv: Use IPIs for remote cache/TLB flushes by default 2024-04-29 10:49:26 -07:00
soc.h
sparsemem.h RISC-V: Don't have MAX_PHYSMEM_BITS exceed phys_addr_t 2024-09-20 01:32:39 -07:00
spinlock.h riscv: qspinlock: Fixup _Q_PENDING_LOOPS definition 2025-01-08 10:46:01 -08:00
stackprotector.h
stacktrace.h
string.h riscv: Omit optimized string routines when using KASAN 2024-09-19 01:10:00 -07:00
suspend.h riscv: Add stimecmp save and restore 2025-03-18 12:59:03 +00:00
switch_to.h riscv: vector: Support xtheadvector save/restore 2025-01-18 12:33:33 -08:00
sync_core.h
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
syscall_table.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
syscall_wrapper.h riscv: Mark __se_sys_* functions __used 2024-03-26 14:11:03 -07:00
text-patching.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
thread_info.h riscv: add PREEMPT_LAZY support 2024-11-05 12:55:39 +01:00
timex.h
tlb.h mm: pgtable: introduce generic __tlb_remove_table() 2025-01-25 20:22:23 -08:00
tlbbatch.h
tlbflush.h mm: remove arch_flush_tlb_batched_pending() arch helper 2025-07-24 19:12:32 -07:00
topology.h arch, mm: move definition of node_data to generic code 2024-09-03 21:15:28 -07:00
trace.h riscv: Add tracepoints for SBI calls and returns 2024-07-10 13:23:09 -07:00
uaccess.h riscv: Fix sparse warning about different address spaces 2025-09-05 15:33:52 -06:00
unistd.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
uprobes.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
vdso.h riscv: vdso: Switch to generic storage implementation 2025-02-21 09:54:02 +01:00
vector.h riscv: vector: Fix context save/restore with xtheadvector 2025-06-12 12:13:47 -07:00
vendor_extensions.h riscv: cpufeature: Extract common elements from extension checking 2024-07-22 15:36:57 -07:00
vendorid_list.h riscv: sbi: vendorid_list: Add Microchip Technology to the vendor list 2025-01-20 10:25:05 -06:00
vermagic.h
vmalloc.h riscv: Add license to vmalloc.h 2024-09-03 07:18:34 -07:00
word-at-a-time.h
xip_fixup.h riscv: drop the use of XIP_OFFSET in XIP_FIXUP_FLASH_OFFSET 2024-09-12 07:22:59 -07:00
xor.h