KVM: PPC: Book3S HV: Fix mask size for emulated msgsndp
authorLeonardo Bras <leobras.c@gmail.com>
Tue, 8 Dec 2020 21:57:08 +0000 (18:57 -0300)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 15 Dec 2020 11:22:06 +0000 (22:22 +1100)
commit87fb4978ef8f7e3d6f51ea8e259638c4e96f2fc0
treeda2251fb64224143d74aae2f702e6722be66bb7c
parenta300bf8c5f24bdeaa84925d1e0ec6221cbdc7597
KVM: PPC: Book3S HV: Fix mask size for emulated msgsndp

According to ISAv3.1 and ISAv3.0b, the msgsndp is described to split
RB in:
  msgtype <- (RB) 32:36
  payload <- (RB) 37:63
  t       <- (RB) 57:63

The current way of getting 'msgtype', and 't' is missing their MSB:
  msgtype: ((arg >> 27) & 0xf) : Gets (RB) 33:36, missing bit 32
  t:       (arg &= 0x3f)       : Gets (RB) 58:63, missing bit 57

Fixes this by applying the correct mask.

Signed-off-by: Leonardo Bras <leobras.c@gmail.com>
Acked-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201208215707.31149-1-leobras.c@gmail.com
arch/powerpc/kvm/book3s_hv.c