mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
KVM: PPC: Book3S HV: Fix kvmppc_bad_host_intr for real mode interrupts
When CONFIG_RELOCATABLE=n, the Linux real mode interrupt handlers call into KVM using real address. This needs to be translated to the kernel linear effective address before the MMU is switched on. kvmppc_bad_host_intr misses adding these bits, so when it is used to handle a system reset interrupt (that always gets delivered in real mode), it results in an instruction access fault immediately after the MMU is turned on. Fix this by ensuring the top 2 address bits are set when the MMU is turned on. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
878cf2bb2d
commit
eadce3b48b
1 changed files with 2 additions and 0 deletions
|
@ -3568,6 +3568,8 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_TYPE_RADIX)
|
||||||
bcl 20, 31, .+4
|
bcl 20, 31, .+4
|
||||||
5: mflr r3
|
5: mflr r3
|
||||||
addi r3, r3, 9f - 5b
|
addi r3, r3, 9f - 5b
|
||||||
|
li r4, -1
|
||||||
|
rldimi r3, r4, 62, 0 /* ensure 0xc000000000000000 bits are set */
|
||||||
ld r4, PACAKMSR(r13)
|
ld r4, PACAKMSR(r13)
|
||||||
mtspr SPRN_SRR0, r3
|
mtspr SPRN_SRR0, r3
|
||||||
mtspr SPRN_SRR1, r4
|
mtspr SPRN_SRR1, r4
|
||||||
|
|
Loading…
Reference in a new issue