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:
"There's nothing major (even the vmalloc one is just suppressing a
potential warning) but all worth having, nonetheless.

- Suppress KASAN false positive in stack unwinding code

- Drop redundant reset of the GCS state on exec()

- Don't try to descend into a !present PMD when creating a huge
vmap() entry at the PUD level

- Fix a small typo in the arm64 booting Documentation"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64/ptrace: Fix stack-out-of-bounds read in regs_get_kernel_stack_nth()
arm64/gcs: Don't call gcs_free() during flush_gcs()
arm64: Restrict pagetable teardown to avoid false warning
docs: arm64: Fix ICC_SRE_EL2 register typo in booting.rst

+7 -4
+1 -1
Documentation/arch/arm64/booting.rst
··· 234 234 235 235 - If the kernel is entered at EL1: 236 236 237 - - ICC.SRE_EL2.Enable (bit 3) must be initialised to 0b1 237 + - ICC_SRE_EL2.Enable (bit 3) must be initialised to 0b1 238 238 - ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b1. 239 239 240 240 - The DT or ACPI tables must describe a GICv3 interrupt controller.
+3 -1
arch/arm64/kernel/process.c
··· 288 288 if (!system_supports_gcs()) 289 289 return; 290 290 291 - gcs_free(current); 291 + current->thread.gcspr_el0 = 0; 292 + current->thread.gcs_base = 0; 293 + current->thread.gcs_size = 0; 292 294 current->thread.gcs_el0_mode = 0; 293 295 write_sysreg_s(GCSCRE0_EL1_nTR, SYS_GCSCRE0_EL1); 294 296 write_sysreg_s(0, SYS_GCSPR_EL0);
+1 -1
arch/arm64/kernel/ptrace.c
··· 141 141 142 142 addr += n; 143 143 if (regs_within_kernel_stack(regs, (unsigned long)addr)) 144 - return *addr; 144 + return READ_ONCE_NOCHECK(*addr); 145 145 else 146 146 return 0; 147 147 }
+2 -1
arch/arm64/mm/mmu.c
··· 1305 1305 next = addr; 1306 1306 end = addr + PUD_SIZE; 1307 1307 do { 1308 - pmd_free_pte_page(pmdp, next); 1308 + if (pmd_present(pmdp_get(pmdp))) 1309 + pmd_free_pte_page(pmdp, next); 1309 1310 } while (pmdp++, next += PMD_SIZE, next != end); 1310 1311 1311 1312 pud_clear(pudp);