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 'powerpc-5.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:
"Some more powerpc fixes for 5.6:

- One fix for a recent regression to our breakpoint/watchpoint code.

- Another fix for our KUAP support, this time a missing annotation in
a rarely used path in signal handling.

- A fix for our handling of a CPU feature that effects the PMU, when
booting guests in some configurations.

- A minor fix to our linker script to explicitly include the .BTF
section.

Thanks to: Christophe Leroy, Desnes A. Nunes do Rosario, Leonardo
Bras, Naveen N. Rao, Ravi Bangoria, Stefan Berger"

* tag 'powerpc-5.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/mm: Fix missing KUAP disable in flush_coherent_icache()
powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems
powerpc: Include .BTF section
powerpc/watchpoint: Don't call dar_within_range() for Book3S

+18 -6
+3 -1
arch/powerpc/kernel/cputable.c
··· 2193 2193 * oprofile_cpu_type already has a value, then we are 2194 2194 * possibly overriding a real PVR with a logical one, 2195 2195 * and, in that case, keep the current value for 2196 - * oprofile_cpu_type. 2196 + * oprofile_cpu_type. Futhermore, let's ensure that the 2197 + * fix for the PMAO bug is enabled on compatibility mode. 2197 2198 */ 2198 2199 if (old.oprofile_cpu_type != NULL) { 2199 2200 t->oprofile_cpu_type = old.oprofile_cpu_type; 2200 2201 t->oprofile_type = old.oprofile_type; 2202 + t->cpu_features |= old.cpu_features & CPU_FTR_PMAO_BUG; 2201 2203 } 2202 2204 } 2203 2205
+7 -5
arch/powerpc/kernel/hw_breakpoint.c
··· 331 331 } 332 332 333 333 info->type &= ~HW_BRK_TYPE_EXTRANEOUS_IRQ; 334 - if (!dar_within_range(regs->dar, info)) 335 - info->type |= HW_BRK_TYPE_EXTRANEOUS_IRQ; 336 - 337 - if (!IS_ENABLED(CONFIG_PPC_8xx) && !stepping_handler(regs, bp, info)) 338 - goto out; 334 + if (IS_ENABLED(CONFIG_PPC_8xx)) { 335 + if (!dar_within_range(regs->dar, info)) 336 + info->type |= HW_BRK_TYPE_EXTRANEOUS_IRQ; 337 + } else { 338 + if (!stepping_handler(regs, bp, info)) 339 + goto out; 340 + } 339 341 340 342 /* 341 343 * As a policy, the callback is invoked in a 'trigger-after-execute'
+6
arch/powerpc/kernel/vmlinux.lds.S
··· 303 303 *(.branch_lt) 304 304 } 305 305 306 + #ifdef CONFIG_DEBUG_INFO_BTF 307 + .BTF : AT(ADDR(.BTF) - LOAD_OFFSET) { 308 + *(.BTF) 309 + } 310 + #endif 311 + 306 312 .opd : AT(ADDR(.opd) - LOAD_OFFSET) { 307 313 __start_opd = .; 308 314 KEEP(*(.opd))
+2
arch/powerpc/mm/mem.c
··· 373 373 */ 374 374 if (cpu_has_feature(CPU_FTR_COHERENT_ICACHE)) { 375 375 mb(); /* sync */ 376 + allow_read_from_user((const void __user *)addr, L1_CACHE_BYTES); 376 377 icbi((void *)addr); 378 + prevent_read_from_user((const void __user *)addr, L1_CACHE_BYTES); 377 379 mb(); /* sync */ 378 380 isync(); 379 381 return true;