clear-pkgs-linux-iot-lts2018/0632-hyper_dmabuf-virtio-bu...

62 lines
2.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Mateusz Polrola <mateuszx.potrola@intel.com>
Date: Tue, 21 Aug 2018 11:19:53 +0200
Subject: [PATCH] hyper_dmabuf/virtio: bugfix on acrn_ioreq_add_iorange() usage
Align usage of acrn_ioreq_add_iorange according to description
of change: "VBS-K: bugfix on cwp_ioreq_add_iorange() usage":
"However, previous VBS-K rng reference driver mistakenly uses "start"
and "start + len". This leads to the fact that VBS-K not only
hooked "kick" register, VIRTIO_PCI_QUEUE_NOTIFY, but also "status"
register, VIRTIO_PCI_STATUS, mistakenly."
Signed-off-by: Mateusz Polrola <mateuszx.potrola@intel.com>
---
.../hyper_dmabuf/virtio/hyper_dmabuf_virtio_be_drv.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/dma-buf/hyper_dmabuf/virtio/hyper_dmabuf_virtio_be_drv.c b/drivers/dma-buf/hyper_dmabuf/virtio/hyper_dmabuf_virtio_be_drv.c
index a89d557c7c4c..c84b2dd746a3 100644
--- a/drivers/dma-buf/hyper_dmabuf/virtio/hyper_dmabuf_virtio_be_drv.c
+++ b/drivers/dma-buf/hyper_dmabuf/virtio/hyper_dmabuf_virtio_be_drv.c
@@ -234,7 +234,7 @@ static int virtio_be_register_vhm_client(struct virtio_dev_info *d)
ret = acrn_ioreq_add_iorange(fe_info->client_id,
d->io_range_type ? REQ_MMIO : REQ_PORTIO,
d->io_range_start,
- d->io_range_start + d->io_range_len);
+ d->io_range_start + d->io_range_len - 1);
if (ret < 0) {
dev_err(hy_drv_priv->dev,
@@ -247,7 +247,7 @@ static int virtio_be_register_vhm_client(struct virtio_dev_info *d)
acrn_ioreq_del_iorange(fe_info->client_id,
d->io_range_type ? REQ_MMIO : REQ_PORTIO,
d->io_range_start,
- d->io_range_start + d->io_range_len);
+ d->io_range_start + d->io_range_len - 1);
dev_err(hy_drv_priv->dev, "Failed in vhm_get_vm_info\n");
goto err;
@@ -260,7 +260,7 @@ static int virtio_be_register_vhm_client(struct virtio_dev_info *d)
acrn_ioreq_del_iorange(fe_info->client_id,
d->io_range_type ? REQ_MMIO : REQ_PORTIO,
d->io_range_start,
- d->io_range_start + d->io_range_len);
+ d->io_range_start + d->io_range_len - 1);
dev_err(hy_drv_priv->dev, "Failed in acrn_ioreq_get_reqbuf\n");
goto err;
@@ -326,7 +326,7 @@ static void cleanup_fe(struct virtio_fe_info *fe_info, void *attr)
acrn_ioreq_del_iorange(fe_info->client_id,
priv->dev.io_range_type ? REQ_MMIO : REQ_PORTIO,
priv->dev.io_range_start,
- priv->dev.io_range_start + priv->dev.io_range_len);
+ priv->dev.io_range_start + priv->dev.io_range_len - 1);
acrn_ioreq_destroy_client(fe_info->client_id);
virtio_fe_remove(fe_info->client_id);
--
https://clearlinux.org