diff options
author | Peter Xu <peterx@redhat.com> | 2019-01-16 11:08:15 +0800 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2019-02-05 10:58:33 -0500 |
commit | a56de056c91f87e1e8569a32f8d3513b5ae1d7ec (patch) | |
tree | a14fb2ba8b5b54fe99b309a843e0c89319a4239d | |
parent | afa26ecc3010d2851a065edc7817d31e07d236ec (diff) | |
download | qemu-a56de056c91f87e1e8569a32f8d3513b5ae1d7ec.zip qemu-a56de056c91f87e1e8569a32f8d3513b5ae1d7ec.tar.gz qemu-a56de056c91f87e1e8569a32f8d3513b5ae1d7ec.tar.bz2 |
contrib/vhost-user-blk: fix the compilation issue
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | contrib/vhost-user-blk/vhost-user-blk.c | 6 | ||||
-rw-r--r-- | target/i386/kvm.c | 14 |
2 files changed, 16 insertions, 4 deletions
diff --git a/contrib/vhost-user-blk/vhost-user-blk.c b/contrib/vhost-user-blk/vhost-user-blk.c index 858221a..49640df 100644 --- a/contrib/vhost-user-blk/vhost-user-blk.c +++ b/contrib/vhost-user-blk/vhost-user-blk.c @@ -20,6 +20,10 @@ #include "contrib/libvhost-user/libvhost-user-glib.h" #include "contrib/libvhost-user/libvhost-user.h" +#if defined(__linux__) +#include <linux/fs.h> +#include <sys/ioctl.h> +#endif struct virtio_blk_inhdr { unsigned char status; @@ -454,7 +458,7 @@ vub_get_blocksize(int fd) #if defined(__linux__) && defined(BLKSSZGET) if (ioctl(fd, BLKSSZGET, &blocksize) == 0) { - return blocklen; + return blocksize; } #endif diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 9af4542..beae1b9 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -3894,7 +3894,7 @@ static QLIST_HEAD(, MSIRouteEntry) msi_route_list = \ static void kvm_update_msi_routes_all(void *private, bool global, uint32_t index, uint32_t mask) { - int cnt = 0; + int cnt = 0, vector; MSIRouteEntry *entry; MSIMessage msg; PCIDevice *dev; @@ -3902,11 +3902,19 @@ static void kvm_update_msi_routes_all(void *private, bool global, /* TODO: explicit route update */ QLIST_FOREACH(entry, &msi_route_list, list) { cnt++; + vector = entry->vector; dev = entry->dev; - if (!msix_enabled(dev) && !msi_enabled(dev)) { + if (msix_enabled(dev) && !msix_is_masked(dev, vector)) { + msg = msix_get_message(dev, vector); + } else if (msi_enabled(dev) && !msi_is_masked(dev, vector)) { + msg = msi_get_message(dev, vector); + } else { + /* + * Either MSI/MSIX is disabled for the device, or the + * specific message was masked out. Skip this one. + */ continue; } - msg = pci_get_msi_message(dev, entry->vector); kvm_irqchip_update_msi_route(kvm_state, entry->virq, msg, dev); } kvm_irqchip_commit_routes(kvm_state); |