linux/arch/riscv
Pu Lehui dd642ccb45 riscv, bpf: Implement more atomic operations for RV64
This patch implement more BPF atomic operations for RV64. The newly
added operations are shown below:

  atomic[64]_[fetch_]add
  atomic[64]_[fetch_]and
  atomic[64]_[fetch_]or
  atomic[64]_xchg
  atomic[64]_cmpxchg

Since riscv specification does not provide AMO instruction for CAS
operation, we use lr/sc instruction for cmpxchg operation, and AMO
instructions for the rest ops.

Tests "test_bpf.ko" and "test_progs -t atomic" have passed, as well
as "test_verifier" with no new failure cases.

Signed-off-by: Pu Lehui <pulehui@huawei.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Song Liu <songliubraving@fb.com>
Acked-by: Björn Töpel <bjorn@kernel.org>
Link: https://lore.kernel.org/bpf/20220410101246.232875-1-pulehui@huawei.com
2022-04-11 16:54:54 +02:00
..
boot RISC-V Patches for the 5.18 Merge Window, Part 2 2022-04-01 13:31:57 -07:00
configs RISC-V: K210 defconfigs: Drop redundant MEMBARRIER=n 2022-03-31 17:19:27 -07:00
errata riscv: errata: alternative: mark vendor_patch_func __initdata 2022-01-09 11:02:46 -08:00
include RISC-V Patches for the 5.18 Merge Window, Part 2 2022-04-01 13:31:57 -07:00
kernel RISC-V Patches for the 5.18 Merge Window, Part 2 2022-04-01 13:31:57 -07:00
kvm RISC-V: KVM: Implement SBI HSM suspend call 2022-03-11 19:02:39 +05:30
lib riscv: Fixed misaligned memory access. Fixed pointer comparison. 2022-03-10 10:24:04 -08:00
mm RISC-V Patches for the 5.18 Merge Window, Part 1 2022-03-25 10:11:38 -07:00
net riscv, bpf: Implement more atomic operations for RV64 2022-04-11 16:54:54 +02:00
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig RISC-V CPU Idle Support 2022-03-30 16:17:54 -07:00
Kconfig.debug RISC-V: Remove EARLY_PRINTK support 2018-12-17 10:23:46 -08:00
Kconfig.erratas riscv: alternative only works on !XIP_KERNEL 2022-03-10 10:05:19 -08:00
Kconfig.socs RISC-V CPU Idle Support 2022-03-30 16:17:54 -07:00
Makefile riscv: fix build with binutils 2.38 2022-02-10 09:17:01 -08:00