On 2022-06-30 17:50, Schspa Shi wrote:
Marc Zyngier <maz@xxxxxxxxxx> writes:
On Thu, 30 Jun 2022 17:12:20 +0100,Yes, you are correct, sorry for my bad patch.
Schspa Shi <schspa@xxxxxxxxx> wrote:
If the len is 8 bytes, we can't get the correct sign extend forI'm afraid you'll have to give me a bit more details.
be system.
Fix the mask type len and the comparison of length.If you're reading an 8 byte quantity, what is there to sign-extend?
Signed-off-by: Schspa Shi <schspa@xxxxxxxxx>
---
arch/arm64/kvm/mmio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/kvm/mmio.c b/arch/arm64/kvm/mmio.c
index 3dd38a151d2a6..0692f8b18f35c 100644
--- a/arch/arm64/kvm/mmio.c
+++ b/arch/arm64/kvm/mmio.c
@@ -81,8 +81,8 @@ unsigned long kvm_mmio_read_buf(const void *buf, unsigned
int len)
int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
{
unsigned long data;
+ unsigned long mask;
unsigned int len;
- int mask;
/* Detect an already handled MMIO return */
if (unlikely(!vcpu->mmio_needed))
@@ -97,7 +97,7 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
data = kvm_mmio_read_buf(run->mmio.data, len);
if (kvm_vcpu_dabt_issext(vcpu) &&
- len < sizeof(unsigned long)) {
+ len <= sizeof(unsigned long)) {
Sign extension only makes sense if what you're reading is *smaller*
than the size of the register you are targeting.
Please ignore this patch.
I must be missing something. And how is that related to running BE? BEI mean BE is for guest running with BE mode.
in the host? The guest?
So what problem did you see? If you have noticed something going
wrong, I'd like to get it fixed.
Thanks,
M.