[GIT PULL] LoongArch changes for v7.1

From: Huacai Chen

Date: Fri Apr 24 2026 - 00:19:43 EST


The following changes since commit 028ef9c96e96197026887c0f092424679298aae8:

Linux 7.0 (2026-04-12 13:48:06 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-7.1

for you to fetch changes up to 7939f96f26e96b69db1fe4e7c18537a679696358:

selftests/bpf: Enable CAN_USE_LOAD_ACQ_STORE_REL for LoongArch (2026-04-23 12:49:46 +0800)

----------------------------------------------------------------
LoongArch changes for v7.1

1, Adjust build infrastructure for 32BIT/64BIT;
2, Add HIGHMEM (PKMAP and FIX_KMAP) support;
3, Show and handle CPU vulnerabilites correctly;
4, Batch the icache maintenance for jump_label;
5, Add more atomic instructions support for BPF JIT;
6, Add more features (e.g. fsession) support for BPF trampoline;
7, Some bug fixes and other small changes.

Note: There is a conflict in arch/loongarch/mm/init.c but can be
simply fixed by adjusting context.

----------------------------------------------------------------
Greg Kroah-Hartman (1):
LoongArch: Add spectre boundry for syscall dispatch table

Hengqi Chen (2):
LoongArch: BPF: Introduce emit_store_stack_imm64() helper
LoongArch: BPF: Add fsession support for trampolines

Huacai Chen (4):
LoongArch: Adjust build infrastructure for 32BIT/64BIT
LoongArch: Add HIGHMEM (PKMAP and FIX_KMAP) support
LoongArch: Make arch_irq_work_has_interrupt() true only if IPI HW exist
LoongArch: Show CPU vulnerabilites correctly

Lisa Robinson (1):
LoongArch: Align FPU register state to 32 bytes

Luo Qiu (1):
LoongArch: Use get_random_canary() for stack canary init

Tiezhu Yang (9):
LoongArch: Handle CONFIG_32BIT in syscall_get_arch()
LoongArch: Define instruction formats for AM{SWAP/ADD}.{B/H} and DBAR
LoongArch: BPF: Add the default case in emit_atomic() and rename it
LoongArch: BPF: Support 8 and 16 bit read-modify-write instructions
LoongArch: BPF: Support load-acquire and store-release instructions
LoongArch: BPF: Open code and remove invoke_bpf_mod_ret()
LoongArch: BPF: Support small struct arguments for trampoline
LoongArch: BPF: Support up to 12 function arguments for trampoline
selftests/bpf: Enable CAN_USE_LOAD_ACQ_STORE_REL for LoongArch

Youling Tang (2):
LoongArch: Add flush_icache_all()/local_flush_icache_all()
LoongArch: Batch the icache maintenance for jump_label

Yuqian Yang (1):
LoongArch: Improve the logging of disabling KASLR

arch/loongarch/Kconfig | 120 +++++--
arch/loongarch/Makefile | 23 +-
arch/loongarch/boot/Makefile | 6 +
arch/loongarch/include/asm/cacheflush.h | 16 +-
arch/loongarch/include/asm/cpu-features.h | 1 +
arch/loongarch/include/asm/cpu.h | 64 ++--
arch/loongarch/include/asm/fixmap.h | 14 +
arch/loongarch/include/asm/highmem.h | 43 +++
arch/loongarch/include/asm/inst.h | 10 +
arch/loongarch/include/asm/irq_work.h | 2 +-
arch/loongarch/include/asm/jump_label.h | 2 +
arch/loongarch/include/asm/page.h | 4 -
arch/loongarch/include/asm/pgtable.h | 12 +
arch/loongarch/include/asm/processor.h | 2 +-
arch/loongarch/include/asm/stackprotector.h | 9 +-
arch/loongarch/include/asm/syscall.h | 4 +
arch/loongarch/include/uapi/asm/hwcap.h | 1 +
arch/loongarch/kernel/cpu-probe.c | 11 +
arch/loongarch/kernel/fpu.S | 12 +-
arch/loongarch/kernel/inst.c | 6 +-
arch/loongarch/kernel/jump_label.c | 12 +-
arch/loongarch/kernel/proc.c | 2 +
arch/loongarch/kernel/process.c | 2 +
arch/loongarch/kernel/relocate.c | 26 +-
arch/loongarch/kernel/syscall.c | 3 +-
arch/loongarch/kernel/vmlinux.lds.S | 7 +-
arch/loongarch/kvm/Kconfig | 2 +-
arch/loongarch/lib/Makefile | 6 +-
arch/loongarch/mm/Makefile | 1 +
arch/loongarch/mm/cache.c | 10 -
arch/loongarch/mm/highmem.c | 12 +
arch/loongarch/mm/init.c | 61 +++-
arch/loongarch/mm/pgtable.c | 27 ++
arch/loongarch/net/bpf_jit.c | 381 +++++++++++++++++----
drivers/firmware/efi/libstub/Makefile | 1 +
drivers/pci/controller/Kconfig | 2 +-
lib/crc/Kconfig | 2 +-
tools/testing/selftests/bpf/progs/bpf_misc.h | 4 +-
.../selftests/bpf/progs/verifier_precision.c | 4 +-
39 files changed, 726 insertions(+), 201 deletions(-)
create mode 100644 arch/loongarch/include/asm/highmem.h
create mode 100644 arch/loongarch/mm/highmem.c