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 Catalin Marinas:

- Another fix for rodata=full. Since rodata= is not a simple boolean on
arm64 (accepting 'full' as well), it got inadvertently broken by
changes in the core code. If rodata=on is the default and rodata=off
is passed on the kernel command line, rodata_full is never disabled

- Fix gcc compiler warning of shifting 0xc0 into bits 31:24 without an
explicit conversion to u32 (triggered by the AMPERE1 MIDR definition)

- Include asm/ptrace.h in asm/syscall_wrapper.h to fix an incomplete
struct pt_regs type causing the BPF verifier to refuse to load a
tracing program which accesses pt_regs

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64/syscall: Include asm/ptrace.h in syscall_wrapper header.
arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
arm64: fix rodata=full again

+5 -4
+1 -1
arch/arm64/include/asm/cputype.h
··· 41 41 (((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT) 42 42 43 43 #define MIDR_CPU_MODEL(imp, partnum) \ 44 - (((imp) << MIDR_IMPLEMENTOR_SHIFT) | \ 44 + ((_AT(u32, imp) << MIDR_IMPLEMENTOR_SHIFT) | \ 45 45 (0xf << MIDR_ARCHITECTURE_SHIFT) | \ 46 46 ((partnum) << MIDR_PARTNUM_SHIFT)) 47 47
+1 -1
arch/arm64/include/asm/syscall_wrapper.h
··· 8 8 #ifndef __ASM_SYSCALL_WRAPPER_H 9 9 #define __ASM_SYSCALL_WRAPPER_H 10 10 11 - struct pt_regs; 11 + #include <asm/ptrace.h> 12 12 13 13 #define SC_ARM64_REGS_TO_ARGS(x, ...) \ 14 14 __MAP(x,__SC_ARGS \
+3 -2
arch/arm64/mm/pageattr.c
··· 26 26 * mapped at page granularity, so that it is possible to 27 27 * protect/unprotect single pages. 28 28 */ 29 - return rodata_full || debug_pagealloc_enabled() || 29 + return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() || 30 30 IS_ENABLED(CONFIG_KFENCE); 31 31 } 32 32 ··· 102 102 * If we are manipulating read-only permissions, apply the same 103 103 * change to the linear mapping of the pages that back this VM area. 104 104 */ 105 - if (rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || 105 + if (rodata_enabled && 106 + rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || 106 107 pgprot_val(clear_mask) == PTE_RDONLY)) { 107 108 for (i = 0; i < area->nr_pages; i++) { 108 109 __change_memory_common((u64)page_address(area->pages[i]),