Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
"Three arm64 fixes for -rc4.

One of them is just a trivial documentation fix, whereas the other two
address a warning in the kexec code and a crash in ftrace on systems
implementing BTI.

The latter patch has a couple of ugly ifdefs which Mark plans to clean
up separately, but as-is the patch is straightforward for backporting
to stable kernels.

Summary:

- Add missing BTI landing instructions to the ftrace*_caller
trampolines

- Fix kexec() WARN when DEBUG_VIRTUAL is enabled

- Fix PAC documentation by removing stale references to compiler
flags"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: ftrace: add missing BTIs
arm64: kexec: use __pa_symbol(empty_zero_page)
arm64: update PAC description for kernel

+11 -6
+4 -5
Documentation/arm64/pointer-authentication.rst
··· 53 53 virtual address size configured by the kernel. For example, with a 54 54 virtual address size of 48, the PAC is 7 bits wide. 55 55 56 - Recent versions of GCC can compile code with APIAKey-based return 57 - address protection when passed the -msign-return-address option. This 58 - uses instructions in the HINT space (unless -march=armv8.3-a or higher 59 - is also passed), and such code can run on systems without the pointer 60 - authentication extension. 56 + When ARM64_PTR_AUTH_KERNEL is selected, the kernel will be compiled 57 + with HINT space pointer authentication instructions protecting 58 + function returns. Kernels built with this option will work on hardware 59 + with or without pointer authentication support. 61 60 62 61 In addition to exec(), keys can also be reinitialized to random values 63 62 using the PR_PAC_RESET_KEYS prctl. A bitmask of PR_PAC_APIAKEY,
+6
arch/arm64/kernel/entry-ftrace.S
··· 77 77 .endm 78 78 79 79 SYM_CODE_START(ftrace_regs_caller) 80 + #ifdef BTI_C 81 + BTI_C 82 + #endif 80 83 ftrace_regs_entry 1 81 84 b ftrace_common 82 85 SYM_CODE_END(ftrace_regs_caller) 83 86 84 87 SYM_CODE_START(ftrace_caller) 88 + #ifdef BTI_C 89 + BTI_C 90 + #endif 85 91 ftrace_regs_entry 0 86 92 b ftrace_common 87 93 SYM_CODE_END(ftrace_caller)
+1 -1
arch/arm64/kernel/machine_kexec.c
··· 147 147 if (rc) 148 148 return rc; 149 149 kimage->arch.ttbr1 = __pa(trans_pgd); 150 - kimage->arch.zero_page = __pa(empty_zero_page); 150 + kimage->arch.zero_page = __pa_symbol(empty_zero_page); 151 151 152 152 reloc_size = __relocate_new_kernel_end - __relocate_new_kernel_start; 153 153 memcpy(reloc_code, __relocate_new_kernel_start, reloc_size);