linux/arch/riscv/include/asm
Nathan Huckleberry 6c58f25e69
riscv/atomic: Fix sign extension for RV64I
The argument passed to cmpxchg is not guaranteed to be sign
extended, but lr.w sign extends on RV64I. This makes cmpxchg
fail on clang built kernels when __old is negative.

To fix this, we just cast __old to long which sign extends on
RV64I. With this fix, clang built RISC-V kernels now boot.

Link: https://github.com/ClangBuiltLinux/linux/issues/867
Signed-off-by: Nathan Huckleberry <nhuck@google.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
2020-06-12 12:07:58 -07:00
..
vdso riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
asm-offsets.h
asm-prototypes.h riscv: Less inefficient gcc tishift helpers (and export their symbols) 2020-01-18 19:13:41 -08:00
asm.h RISC-V: Clear load reservations while restoring hart contexts 2019-10-01 13:16:40 -07:00
atomic.h locking/atomic, riscv: Use s64 for atomic64 2019-06-03 12:32:56 +02:00
barrier.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
bitops.h RISC-V patches for v5.2-rc6 2019-06-17 10:34:03 -07:00
bug.h riscv: add macro to get instruction length 2020-03-26 09:24:49 -07:00
cache.h riscv: add nommu support 2019-11-17 15:17:39 -08:00
cacheflush.h mm: rename flush_icache_user_range to flush_icache_user_page 2020-06-08 11:05:58 -07:00
cacheinfo.h riscv: cacheinfo: Implement cache_get_priv_group with a generic ops structure 2020-05-20 15:05:05 -07:00
clint.h riscv: fix the IPI missing issue in nommu mode 2020-03-18 18:44:39 -07:00
clocksource.h riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
cmpxchg.h riscv/atomic: Fix sign extension for RV64I 2020-06-12 12:07:58 -07:00
cpu_ops.h RISC-V: Support cpu hotplug 2020-03-31 11:28:30 -07:00
csr.h RISC-V: Remove N-extension related defines 2020-05-04 14:09:00 -07:00
current.h RISC-V: Stop relying on GCC's register allocator's hueristics 2020-03-03 10:28:13 -08:00
delay.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
elf.h riscv: add nommu support 2019-11-17 15:17:39 -08:00
fence.h riscv/spinlock: Strengthen implementations with fences 2018-04-02 19:59:43 -07:00
fixmap.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
ftrace.h riscv: clean up the macro format in each header file 2019-11-12 12:04:52 -08:00
futex.h futex: arch_futex_atomic_op_inuser() calling conventions change 2020-03-27 23:58:51 -04:00
gdb_xml.h riscv: Use the XML target descriptions to report 3 system registers 2020-05-18 11:38:11 -07:00
hugetlb.h mm/hugetlb: define a generic fallback for arch_clear_hugepage_flags() 2020-06-03 20:09:46 -07:00
hwcap.h RISC-V: Add bitmap reprensenting ISA features common across CPUs 2020-05-04 14:08:59 -07:00
image.h RISC-V: Typo fixes in image header and documentation. 2019-12-19 09:32:45 -07:00
io.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
irq.h clocksource/drivers/timer-riscv: Use per-CPU timer interrupt 2020-06-09 19:11:22 -07:00
irqflags.h riscv: abstract out CSR names for supervisor vs machine mode 2019-11-05 09:20:42 -08:00
kasan.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
Kbuild asm-generic: make more kernel-space headers mandatory 2020-04-02 09:35:25 -07:00
kdebug.h riscv: Add KGDB support 2020-05-18 11:38:10 -07:00
kgdb.h riscv: Use the XML target descriptions to report 3 system registers 2020-05-18 11:38:11 -07:00
kprobes.h riscv: clean up the macro format in each header file 2019-11-12 12:04:52 -08:00
linkage.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
mmio.h riscv: Add pgprot_writecombine/device and PAGE_SHARED defination if NOMMU 2020-05-12 17:20:32 -07:00
mmiowb.h riscv: mmiowb: Fix implicit declaration of function 'smp_processor_id' 2020-05-13 17:11:46 -07:00
mmu_context.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
mmu.h riscv: add nommu support 2019-11-17 15:17:39 -08:00
module.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
page.h mm/vma: define a default value for VM_DATA_DEFAULT_FLAGS 2020-04-10 15:36:21 -07:00
parse_asm.h riscv: Add SW single-step support for KDB 2020-05-18 11:38:12 -07:00
patch.h riscv: Remove the 'riscv_' prefix of function name 2020-05-18 11:38:13 -07:00
pci.h riscv: clean up the macro format in each header file 2019-11-12 12:04:52 -08:00
perf_event.h riscv: perf: RISCV_BASE_PMU should be independent 2020-05-12 16:21:46 -07:00
pgalloc.h riscv: add nommu support 2019-11-17 15:17:39 -08:00
pgtable-32.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
pgtable-64.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
pgtable-bits.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
pgtable.h mm: consolidate pte_index() and pte_offset_*() definitions 2020-06-09 09:39:14 -07:00
processor.h riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
ptdump.h riscv: support DEBUG_WX 2020-06-03 20:09:50 -07:00
ptrace.h riscv: abstract out CSR names for supervisor vs machine mode 2019-11-05 09:20:42 -08:00
sbi.h RISC-V: Add SBI HSM extension definitions 2020-03-31 11:26:05 -07:00
seccomp.h riscv: add support for SECCOMP and SECCOMP_FILTER 2019-10-29 11:32:10 -07:00
set_memory.h RISC-V: Remove unused code from STRICT_KERNEL_RWX 2020-05-05 17:02:14 -07:00
smp.h RISC-V: self-contained IPI handling routine 2020-06-09 19:11:19 -07:00
soc.h riscv: Allow device trees to be built into the kernel 2020-05-18 11:38:05 -07:00
sparsemem.h riscv: clean up the macro format in each header file 2019-11-12 12:04:52 -08:00
spinlock_types.h riscv: clean up the macro format in each header file 2019-11-12 12:04:52 -08:00
spinlock.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
string.h riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
switch_to.h riscv: abstract out CSR names for supervisor vs machine mode 2019-11-05 09:20:42 -08:00
syscall.h riscv: fix seccomp reject syscall code path 2020-03-05 13:58:15 -08:00
thread_info.h riscv: add support for SECCOMP and SECCOMP_FILTER 2019-10-29 11:32:10 -07:00
timex.h riscv: add support for MMIO access to the timer registers 2019-11-13 14:10:40 -08:00
tlb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
tlbflush.h riscv: add nommu support 2019-11-17 15:17:39 -08:00
uaccess.h riscv: uaccess should be used in nommu mode 2020-03-18 18:44:30 -07:00
unistd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00
vdso.h riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
vmalloc.h mm/vmalloc: Add empty <asm/vmalloc.h> headers and use them from <linux/vmalloc.h> 2019-12-10 10:12:55 +01:00
word-at-a-time.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 2019-06-05 17:36:37 +02:00