Thread (48 messages) 48 messages, 7 authors, 2019-10-22

Re: [PATCH v2 12/12] KVM: arm64: BTI: Reset BTYPE when skipping emulated instructions

From: Dave Martin <Dave.Martin@arm.com>
Date: 2019-10-11 14:44:59
Also in: linux-arch, lkml

On Fri, Oct 11, 2019 at 03:24:55PM +0100, Mark Rutland wrote:
On Thu, Oct 10, 2019 at 07:44:40PM +0100, Dave Martin wrote:
quoted
Since normal execution of any non-branch instruction resets the
PSTATE BTYPE field to 0, so do the same thing when emulating a
trapped instruction.

Branches don't trap directly, so we should never need to assign a
non-zero value to BTYPE here.

Signed-off-by: Dave Martin <Dave.Martin@arm.com>
---
 arch/arm64/include/asm/kvm_emulate.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/include/asm/kvm_emulate.h b/arch/arm64/include/asm/kvm_emulate.h
index d69c1ef..33957a12 100644
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -452,8 +452,10 @@ static inline void kvm_skip_instr(struct kvm_vcpu *vcpu, bool is_wide_instr)
 {
 	if (vcpu_mode_is_32bit(vcpu))
 		kvm_skip_instr32(vcpu, is_wide_instr);
-	else
+	else {
 		*vcpu_pc(vcpu) += 4;
+		*vcpu_cpsr(vcpu) &= ~(u64)PSR_BTYPE_MASK;
+	}
Style nit: both sides of an if-else should match brace-wise. i.e. please
add braces to the other side.
Will fix.  Strange, checkpatch didn't catch that, maybe because only one
arm of the if was patched.
As with the prior patch, the u64 cast can also go.

Otherwise, this looks right to me.
For some reason I thought there was a different prevailing style in the
KVM code, but now I see no evidence of that.

Will fix.

Thanks for the review.

Cheers
---Dave

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help