* [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-08 21:57 ` Leonardo Bras
0 siblings, 0 replies; 9+ messages in thread
From: Leonardo Bras @ 2020-12-08 21:57 UTC (permalink / raw)
To: Paul Mackerras, Michael Ellerman, Benjamin Herrenschmidt
Cc: Leonardo Bras, kvm-ppc, linuxppc-dev, linux-kernel
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>
---
Changes since v1:
- Commit message 's/LSB/MSB/', because ISA ordering is big-endian.
arch/powerpc/kvm/book3s_hv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index e3b1839fc251..5af0a429cee8 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -1241,9 +1241,9 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
switch (get_xop(inst)) {
case OP_31_XOP_MSGSNDP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
- arg &= 0x3f;
+ arg &= 0x7f;
if (arg >= kvm->arch.emul_smt_mode)
break;
tvcpu = kvmppc_find_vcpu(kvm, vcpu->vcpu_id - thr + arg);
@@ -1256,7 +1256,7 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
break;
case OP_31_XOP_MSGCLRP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
vcpu->arch.vcore->dpdes = 0;
vcpu->arch.doorbell_request = 0;
--
2.25.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-08 21:57 ` Leonardo Bras
0 siblings, 0 replies; 9+ messages in thread
From: Leonardo Bras @ 2020-12-08 21:57 UTC (permalink / raw)
To: Paul Mackerras, Michael Ellerman, Benjamin Herrenschmidt
Cc: Leonardo Bras, linuxppc-dev, linux-kernel, kvm-ppc
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>
---
Changes since v1:
- Commit message 's/LSB/MSB/', because ISA ordering is big-endian.
arch/powerpc/kvm/book3s_hv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index e3b1839fc251..5af0a429cee8 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -1241,9 +1241,9 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
switch (get_xop(inst)) {
case OP_31_XOP_MSGSNDP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
- arg &= 0x3f;
+ arg &= 0x7f;
if (arg >= kvm->arch.emul_smt_mode)
break;
tvcpu = kvmppc_find_vcpu(kvm, vcpu->vcpu_id - thr + arg);
@@ -1256,7 +1256,7 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
break;
case OP_31_XOP_MSGCLRP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
vcpu->arch.vcore->dpdes = 0;
vcpu->arch.doorbell_request = 0;
--
2.25.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-08 21:57 ` Leonardo Bras
0 siblings, 0 replies; 9+ messages in thread
From: Leonardo Bras @ 2020-12-08 21:57 UTC (permalink / raw)
To: Paul Mackerras, Michael Ellerman, Benjamin Herrenschmidt
Cc: Leonardo Bras, kvm-ppc, linuxppc-dev, linux-kernel
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>
---
Changes since v1:
- Commit message 's/LSB/MSB/', because ISA ordering is big-endian.
arch/powerpc/kvm/book3s_hv.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index e3b1839fc251..5af0a429cee8 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -1241,9 +1241,9 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
switch (get_xop(inst)) {
case OP_31_XOP_MSGSNDP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
- arg &= 0x3f;
+ arg &= 0x7f;
if (arg >= kvm->arch.emul_smt_mode)
break;
tvcpu = kvmppc_find_vcpu(kvm, vcpu->vcpu_id - thr + arg);
@@ -1256,7 +1256,7 @@ static int kvmppc_emulate_doorbell_instr(struct kvm_vcpu *vcpu)
break;
case OP_31_XOP_MSGCLRP:
arg = kvmppc_get_gpr(vcpu, rb);
- if (((arg >> 27) & 0xf) != PPC_DBELL_SERVER)
+ if (((arg >> 27) & 0x1f) != PPC_DBELL_SERVER)
break;
vcpu->arch.vcore->dpdes = 0;
vcpu->arch.doorbell_request = 0;
--
2.25.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
2020-12-08 21:57 ` Leonardo Bras
(?)
@ 2020-12-15 2:15 ` Paul Mackerras
-1 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2020-12-15 2:15 UTC (permalink / raw)
To: Leonardo Bras
Cc: Michael Ellerman, Benjamin Herrenschmidt, kvm-ppc, linuxppc-dev,
linux-kernel
On Tue, Dec 08, 2020 at 06:57:08PM -0300, Leonardo Bras wrote:
> 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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-15 2:15 ` Paul Mackerras
0 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2020-12-15 2:15 UTC (permalink / raw)
To: Leonardo Bras; +Cc: linuxppc-dev, linux-kernel, kvm-ppc
On Tue, Dec 08, 2020 at 06:57:08PM -0300, Leonardo Bras wrote:
> 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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-15 2:15 ` Paul Mackerras
0 siblings, 0 replies; 9+ messages in thread
From: Paul Mackerras @ 2020-12-15 2:15 UTC (permalink / raw)
To: Leonardo Bras
Cc: Michael Ellerman, Benjamin Herrenschmidt, kvm-ppc, linuxppc-dev,
linux-kernel
On Tue, Dec 08, 2020 at 06:57:08PM -0300, Leonardo Bras wrote:
> 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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
2020-12-08 21:57 ` Leonardo Bras
(?)
@ 2020-12-21 11:03 ` Michael Ellerman
-1 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2020-12-21 11:03 UTC (permalink / raw)
To: Paul Mackerras, Leonardo Bras, Benjamin Herrenschmidt, Michael Ellerman
Cc: kvm-ppc, linuxppc-dev, linux-kernel
On Tue, 8 Dec 2020 18:57:08 -0300, Leonardo Bras wrote:
> 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
>
> [...]
Applied to powerpc/next.
[1/1] KVM: PPC: Book3S HV: Fix mask size for emulated msgsndp
https://git.kernel.org/powerpc/c/87fb4978ef8f7e3d6f51ea8e259638c4e96f2fc0
cheers
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-21 11:03 ` Michael Ellerman
0 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2020-12-21 11:03 UTC (permalink / raw)
To: Paul Mackerras, Leonardo Bras, Benjamin Herrenschmidt, Michael Ellerman
Cc: linuxppc-dev, linux-kernel, kvm-ppc
On Tue, 8 Dec 2020 18:57:08 -0300, Leonardo Bras wrote:
> 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
>
> [...]
Applied to powerpc/next.
[1/1] KVM: PPC: Book3S HV: Fix mask size for emulated msgsndp
https://git.kernel.org/powerpc/c/87fb4978ef8f7e3d6f51ea8e259638c4e96f2fc0
cheers
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp
@ 2020-12-21 11:03 ` Michael Ellerman
0 siblings, 0 replies; 9+ messages in thread
From: Michael Ellerman @ 2020-12-21 11:03 UTC (permalink / raw)
To: Paul Mackerras, Leonardo Bras, Benjamin Herrenschmidt, Michael Ellerman
Cc: kvm-ppc, linuxppc-dev, linux-kernel
On Tue, 8 Dec 2020 18:57:08 -0300, Leonardo Bras wrote:
> 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
>
> [...]
Applied to powerpc/next.
[1/1] KVM: PPC: Book3S HV: Fix mask size for emulated msgsndp
https://git.kernel.org/powerpc/c/87fb4978ef8f7e3d6f51ea8e259638c4e96f2fc0
cheers
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2020-12-21 11:25 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-08 21:57 [PATCH v2 1/1] powerpc/kvm: Fix mask size for emulated msgsndp Leonardo Bras
2020-12-08 21:57 ` Leonardo Bras
2020-12-08 21:57 ` Leonardo Bras
2020-12-15 2:15 ` Paul Mackerras
2020-12-15 2:15 ` Paul Mackerras
2020-12-15 2:15 ` Paul Mackerras
2020-12-21 11:03 ` Michael Ellerman
2020-12-21 11:03 ` Michael Ellerman
2020-12-21 11:03 ` Michael Ellerman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.