The following changes since commit c9c3395d5e3dcc6daee66c6908354d47bf98cb0c: Linux 6.2 (2023-02-19 14:24:22 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git tags/loongarch-6.3 for you to fetch changes up to 8883bf83127d533abb415b204eabc064863ae6c9: selftests/ftrace: Add LoongArch kprobe args string tests support (2023-02-25 22:12:18 +0800) ---------------------------------------------------------------- LoongArch changes for v6.3 1, Make -mstrict-align configurable; 2, Add kernel relocation and KASLR support; 3, Add single kernel image implementation for kdump; 4, Add hardware breakpoints/watchpoints support; 5, Add kprobes/kretprobes/kprobes_on_ftrace support; 6, Add LoongArch support for some selftests. ---------------------------------------------------------------- Huacai Chen (4): Merge 'pci/enumeration' into loongarch-next LoongArch: Make -mstrict-align configurable tools: Add LoongArch build infrastructure selftests/seccomp: Add LoongArch selftesting support Jinyang He (1): LoongArch: Fix Chinese comma in cpu.h Qing Zhang (5): LoongArch: Add hardware breakpoints/watchpoints support LoongArch: ptrace: Expose hardware breakpoints to debuggers LoongArch: ptrace: Add function argument access API LoongArch: ptrace: Add hardware single step support selftests/ftrace: Add LoongArch kprobe args string tests support Tiezhu Yang (7): LoongArch: Only call get_timer_irq() once in constant_clockevent_init() LoongArch: Simulate branch and PC* instructions LoongArch: Add kprobes support LoongArch: Add kretprobes support LoongArch: Add kprobes on ftrace support LoongArch: Mark some assembler symbols as non-kprobe-able samples/kprobes: Add LoongArch support Xi Ruoyao (1): LoongArch: Use la.pcrel instead of la.abs when it's trivially possible Youling Tang (6): LoongArch: Add JUMP_VIRT_ADDR macro implementation to avoid using la.abs LoongArch: Add la_abs macro implementation LoongArch: Add support for kernel relocation LoongArch: Add support for kernel address space layout randomization (KASLR) LoongArch: kdump: Add single kernel image implementation LoongArch: kdump: Add crashkernel=YM handling arch/loongarch/Kconfig | 65 ++- arch/loongarch/Makefile | 14 +- arch/loongarch/configs/loongson3_defconfig | 1 + arch/loongarch/include/asm/addrspace.h | 2 + arch/loongarch/include/asm/asm.h | 10 + arch/loongarch/include/asm/asmmacro.h | 17 + arch/loongarch/include/asm/cpu.h | 2 +- arch/loongarch/include/asm/hw_breakpoint.h | 145 ++++++ arch/loongarch/include/asm/inst.h | 58 +++ arch/loongarch/include/asm/kprobes.h | 61 +++ arch/loongarch/include/asm/loongarch.h | 35 +- arch/loongarch/include/asm/processor.h | 16 +- arch/loongarch/include/asm/ptrace.h | 39 ++ arch/loongarch/include/asm/setup.h | 16 + arch/loongarch/include/asm/stackframe.h | 13 +- arch/loongarch/include/asm/switch_to.h | 1 + arch/loongarch/include/asm/uaccess.h | 1 - arch/loongarch/include/uapi/asm/ptrace.h | 9 + arch/loongarch/kernel/Makefile | 9 +- arch/loongarch/kernel/entry.S | 91 ++-- arch/loongarch/kernel/ftrace_dyn.c | 64 +++ arch/loongarch/kernel/genex.S | 8 +- arch/loongarch/kernel/head.S | 33 +- arch/loongarch/kernel/hw_breakpoint.c | 548 +++++++++++++++++++++ arch/loongarch/kernel/inst.c | 123 +++++ arch/loongarch/kernel/kprobes.c | 406 +++++++++++++++ arch/loongarch/kernel/kprobes_trampoline.S | 96 ++++ arch/loongarch/kernel/process.c | 7 + arch/loongarch/kernel/ptrace.c | 472 ++++++++++++++++++ arch/loongarch/kernel/relocate.c | 242 +++++++++ arch/loongarch/kernel/setup.c | 14 +- arch/loongarch/kernel/time.c | 11 +- arch/loongarch/kernel/traps.c | 68 ++- arch/loongarch/kernel/vmlinux.lds.S | 20 +- arch/loongarch/lib/memcpy.S | 3 + arch/loongarch/lib/memmove.S | 4 + arch/loongarch/lib/memset.S | 3 + arch/loongarch/mm/fault.c | 3 + arch/loongarch/mm/tlbex.S | 17 +- arch/loongarch/power/suspend_asm.S | 5 +- drivers/pci/controller/pci-loongson.c | 71 +-- drivers/pci/pci.c | 10 + drivers/pci/pcie/portdrv.c | 16 +- drivers/pci/probe.c | 2 + include/linux/pci.h | 1 + include/uapi/linux/elf.h | 2 + samples/kprobes/kprobe_example.c | 8 + .../arch/loongarch/include/uapi/asm/bitsperlong.h | 9 + tools/scripts/Makefile.arch | 11 +- .../ftrace/test.d/kprobe/kprobe_args_string.tc | 3 + .../ftrace/test.d/kprobe/kprobe_args_syntax.tc | 4 + tools/testing/selftests/seccomp/seccomp_bpf.c | 6 + 52 files changed, 2728 insertions(+), 167 deletions(-) create mode 100644 arch/loongarch/include/asm/hw_breakpoint.h create mode 100644 arch/loongarch/include/asm/kprobes.h create mode 100644 arch/loongarch/kernel/hw_breakpoint.c create mode 100644 arch/loongarch/kernel/kprobes.c create mode 100644 arch/loongarch/kernel/kprobes_trampoline.S create mode 100644 arch/loongarch/kernel/relocate.c create mode 100644 tools/arch/loongarch/include/uapi/asm/bitsperlong.h