linux/arch/riscv
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
..
boot riscv: K210: Add a built-in device tree 2020-05-18 11:38:06 -07:00
configs riscv: K210: Update defconfig 2020-05-18 11:38:07 -07:00
include riscv/atomic: Fix sign extension for RV64I 2020-06-12 12:07:58 -07:00
kernel RISC-V Patches for the 5.8 Merge Window, Part 2 2020-06-11 12:55:20 -07:00
lib RISC-V Patches for the 5.7 Merge Window, Part 1 2020-04-09 10:51:30 -07:00
mm RISC-V Patches for the 5.8 Merge Window, Part 2 2020-06-11 12:55:20 -07:00
net bpf, riscv: Optimize BPF_JSET BPF_K using andi on RV64 2020-05-06 09:48:15 +02:00
Kbuild riscv: Allow device trees to be built into the kernel 2020-05-18 11:38:05 -07:00
Kconfig riscv: use vDSO common flow to reduce the latency of the time-related functions 2020-06-10 19:47:16 -07:00
Kconfig.debug RISC-V: Remove EARLY_PRINTK support 2018-12-17 10:23:46 -08:00
Kconfig.socs riscv: K210: Add a built-in device tree 2020-05-18 11:38:06 -07:00
Makefile RISC-V Patches for the 5.7 Merge Window, Part 1 2020-04-09 10:51:30 -07:00