KVM: PPC: Book3S HV: Signed extend decrementer value if not using large decrementer
authorSuraj Jitindar Singh <sjitindarsingh@gmail.com>
Thu, 20 Jun 2019 01:46:50 +0000 (11:46 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 20 Jun 2019 13:51:22 +0000 (23:51 +1000)
commit869537709ebf1dc865e75c3fc97b23f8acf37c16
treee143dfa85746713bb90fa06f72091b905d07dca9
parentdf5be5be8735ef2ae80d5ae1f2453cd81a035c4b
KVM: PPC: Book3S HV: Signed extend decrementer value if not using large decrementer

On POWER9 the decrementer can operate in large decrementer mode where
the decrementer is 56 bits and signed extended to 64 bits. When not
operating in this mode the decrementer behaves as a 32 bit decrementer
which is NOT signed extended (as on POWER8).

Currently when reading a guest decrementer value we don't take into
account whether the large decrementer is enabled or not, and this
means the value will be incorrect when the guest is not using the
large decrementer. Fix this by sign extending the value read when the
guest isn't using the large decrementer.

Fixes: 95a6432ce903 ("KVM: PPC: Book3S HV: Streamlined guest entry/exit path on P9 for radix guests")
Cc: stable@vger.kernel.org # v4.20+
Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kvm/book3s_hv.c