clear-pkgs-linux-iot-lts2018/0420-VBS-K-Check-whether-vh...

50 lines
1.4 KiB
Diff

From 62b048833cb7a3dcf5968494a81303aa7d617174 Mon Sep 17 00:00:00 2001
From: Jian Jun Chen <jian.jun.chen@intel.com>
Date: Fri, 31 Aug 2018 10:59:03 +0800
Subject: [PATCH 420/550] VBS-K: Check whether vhm_client_id is valid before
deregister
Need to check whether vhm_client_id is valid before trying to
deregister from VHM. It is possbile that virtio_dev_deregister
is called more than once by vbs-k driver.
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
---
drivers/vbs/vbs.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/vbs/vbs.c b/drivers/vbs/vbs.c
index 7427942c12f7..c2d8a5262a8d 100644
--- a/drivers/vbs/vbs.c
+++ b/drivers/vbs/vbs.c
@@ -135,12 +135,15 @@ long virtio_dev_register(struct virtio_dev_info *dev)
long virtio_dev_deregister(struct virtio_dev_info *dev)
{
+ if (dev->_ctx.vhm_client_id < 0)
+ return 0;
+
acrn_ioreq_del_iorange(dev->_ctx.vhm_client_id,
dev->io_range_type ? REQ_MMIO : REQ_PORTIO,
dev->io_range_start,
dev->io_range_start + dev->io_range_len);
-
acrn_ioreq_destroy_client(dev->_ctx.vhm_client_id);
+ dev->_ctx.vhm_client_id = -1;
return 0;
}
@@ -300,6 +303,8 @@ long virtio_dev_init(struct virtio_dev_info *dev,
for (i = 0; i < nvq; i++)
virtio_vq_reset(&vqs[i]);
+ dev->_ctx.vhm_client_id = -1;
+
return 0;
}
EXPORT_SYMBOL_GPL(virtio_dev_init);
--
2.19.1