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

Pull powerpc fix from Michael Ellerman:
"Just one fix, to make sure the PCR (Processor Compatibility Register)
is reset on boot.

Otherwise if we're running in compat mode in a guest (eg. pretending a
Power9 is a Power8) and the host kernel oopses and kdumps then the
kdump kernel's userspace will be running in Power8 mode, and will
SIGILL if it uses Power9-only instructions.

Thanks to Michael Neuling"

* tag 'powerpc-4.17-7' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/64s: Clear PCR on boot

+7
+6
arch/powerpc/kernel/cpu_setup_power.S
··· 28 28 beqlr 29 29 li r0,0 30 30 mtspr SPRN_LPID,r0 31 + mtspr SPRN_PCR,r0 31 32 mfspr r3,SPRN_LPCR 32 33 li r4,(LPCR_LPES1 >> LPCR_LPES_SH) 33 34 bl __init_LPCR_ISA206 ··· 42 41 beqlr 43 42 li r0,0 44 43 mtspr SPRN_LPID,r0 44 + mtspr SPRN_PCR,r0 45 45 mfspr r3,SPRN_LPCR 46 46 li r4,(LPCR_LPES1 >> LPCR_LPES_SH) 47 47 bl __init_LPCR_ISA206 ··· 59 57 beqlr 60 58 li r0,0 61 59 mtspr SPRN_LPID,r0 60 + mtspr SPRN_PCR,r0 62 61 mfspr r3,SPRN_LPCR 63 62 ori r3, r3, LPCR_PECEDH 64 63 li r4,0 /* LPES = 0 */ ··· 81 78 beqlr 82 79 li r0,0 83 80 mtspr SPRN_LPID,r0 81 + mtspr SPRN_PCR,r0 84 82 mfspr r3,SPRN_LPCR 85 83 ori r3, r3, LPCR_PECEDH 86 84 li r4,0 /* LPES = 0 */ ··· 103 99 mtspr SPRN_PSSCR,r0 104 100 mtspr SPRN_LPID,r0 105 101 mtspr SPRN_PID,r0 102 + mtspr SPRN_PCR,r0 106 103 mfspr r3,SPRN_LPCR 107 104 LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC) 108 105 or r3, r3, r4 ··· 128 123 mtspr SPRN_PSSCR,r0 129 124 mtspr SPRN_LPID,r0 130 125 mtspr SPRN_PID,r0 126 + mtspr SPRN_PCR,r0 131 127 mfspr r3,SPRN_LPCR 132 128 LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE | LPCR_HEIC) 133 129 or r3, r3, r4
+1
arch/powerpc/kernel/dt_cpu_ftrs.c
··· 101 101 if (hv_mode) { 102 102 mtspr(SPRN_LPID, 0); 103 103 mtspr(SPRN_HFSCR, system_registers.hfscr); 104 + mtspr(SPRN_PCR, 0); 104 105 } 105 106 mtspr(SPRN_FSCR, system_registers.fscr); 106 107