From: Jason Wang <jasowang@redhat.com>
To: gleb@kernel.org, pbonzini@redhat.com, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: mst@redhat.com, cornelia.huck@de.ibm.com,
Jason Wang <jasowang@redhat.com>
Subject: [PATCH V4 3/4] kvm: fix zero length mmio searching
Date: Fri, 11 Sep 2015 11:17:36 +0800 [thread overview]
Message-ID: <1441941457-23630-4-git-send-email-jasowang@redhat.com> (raw)
In-Reply-To: <1441941457-23630-1-git-send-email-jasowang@redhat.com>
Currently, if we had a zero length mmio eventfd assigned on
KVM_MMIO_BUS. It will never found by kvm_io_bus_cmp() since it always
compare the kvm_io_range() with the length that guest wrote. This will
lead e.g for vhost, kick will be trapped by qemu userspace instead of
vhost. Fixing this by using zero length if an iodevice is zero length.
Cc: Gleb Natapov <gleb@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
virt/kvm/kvm_main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index d8db2f8f..d4c3b66 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -3071,9 +3071,11 @@ static void kvm_io_bus_destroy(struct kvm_io_bus *bus)
static inline int kvm_io_bus_cmp(const struct kvm_io_range *r1,
const struct kvm_io_range *r2)
{
+ int len = r2->len ? r1->len : 0;
+
if (r1->addr < r2->addr)
return -1;
- if (r1->addr + r1->len > r2->addr + r2->len)
+ if (r1->addr + len > r2->addr + r2->len)
return 1;
return 0;
}
--
2.1.4
next prev parent reply other threads:[~2015-09-11 3:17 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-11 3:17 [PATCH V4 0/4] Fast MMIO eventfd fixes Jason Wang
2015-09-11 3:17 ` [PATCH V4 1/4] kvm: factor out core eventfd assign/deassign logic Jason Wang
2015-09-11 7:39 ` Cornelia Huck
2015-09-11 8:17 ` Paolo Bonzini
2015-09-11 9:14 ` Jason Wang
2015-09-11 3:17 ` [PATCH V4 2/4] kvm: fix double free for fast mmio eventfd Jason Wang
2015-09-11 7:46 ` Cornelia Huck
2015-09-11 9:25 ` Jason Wang
2015-09-11 10:19 ` Cornelia Huck
2015-09-11 3:17 ` Jason Wang [this message]
2015-09-11 8:26 ` [PATCH V4 3/4] kvm: fix zero length mmio searching Paolo Bonzini
2015-09-11 8:31 ` Cornelia Huck
2015-09-11 9:26 ` Jason Wang
2015-09-11 3:17 ` [PATCH V4 4/4] kvm: add tracepoint for fast mmio Jason Wang
2015-09-11 8:15 ` [PATCH V4 0/4] Fast MMIO eventfd fixes Michael S. Tsirkin
2015-09-11 8:33 ` Paolo Bonzini
2015-09-11 9:28 ` Jason Wang
2015-09-13 8:51 ` Michael S. Tsirkin
2015-09-13 8:52 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1441941457-23630-4-git-send-email-jasowang@redhat.com \
--to=jasowang@redhat.com \
--cc=cornelia.huck@de.ibm.com \
--cc=gleb@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®