KVM: PPC: Book3S HV: Fix case where HDEC is treated as 32-bit on POWER9
Commit2f2724630f
("KVM: PPC: Book3S HV: Cope with host using large decrementer mode", 2017-05-22) added code to treat the hypervisor decrementer (HDEC) as a 64-bit value on POWER9 rather than 32-bit. Unfortunately, that commit missed one place where HDEC is treated as a 32-bit value. This fixes it. This bug should not have any user-visible consequences that I can think of, beyond an occasional unnecessary exit to the host kernel. If the hypervisor decrementer has gone negative, then the bottom 32 bits will be negative for about 4 seconds after that, so as long as we get out of the guest within those 4 seconds we won't conclude that the HDEC interrupt is spurious. Reported-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com> Fixes:2f2724630f
("KVM: PPC: Book3S HV: Cope with host using large decrementer mode") Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
0bfa33c7f7
commit
a4faf2e77a
@ -1280,7 +1280,8 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
|
||||
cmpwi r12,BOOK3S_INTERRUPT_HV_DECREMENTER
|
||||
bne 2f
|
||||
mfspr r3,SPRN_HDEC
|
||||
cmpwi r3,0
|
||||
EXTEND_HDEC(r3)
|
||||
cmpdi r3,0
|
||||
mr r4,r9
|
||||
bge fast_guest_return
|
||||
2:
|
||||
|
Loading…
Reference in New Issue
Block a user