[Patch v3 3/6] bus/vmbus: store UIO fd for secondary process
longli at linuxonhyperv.com
longli at linuxonhyperv.com
Sat Apr 5 02:35:35 CEST 2025
From: Long Li <longli at microsoft.com>
Secondary process will get access to vmbus device and this UIO fd for
signaling hyperv host on channels without monitoring support.
Signed-off-by: Long Li <longli at microsoft.com>
---
drivers/bus/vmbus/vmbus_common_uio.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/bus/vmbus/vmbus_common_uio.c b/drivers/bus/vmbus/vmbus_common_uio.c
index 4d4613513c..d55aee6537 100644
--- a/drivers/bus/vmbus/vmbus_common_uio.c
+++ b/drivers/bus/vmbus/vmbus_common_uio.c
@@ -86,8 +86,11 @@ vmbus_uio_map_secondary(struct rte_vmbus_device *dev)
return -1;
}
- /* fd is not needed in secondary process, close it */
- close(fd);
+ if (rte_intr_fd_set(dev->intr_handle, fd))
+ return -1;
+
+ if (rte_intr_type_set(dev->intr_handle, RTE_INTR_HANDLE_UIO_INTX))
+ return -1;
/* Create and map primary channel */
if (vmbus_chan_create(dev, dev->relid, 0,
@@ -256,7 +259,7 @@ vmbus_uio_unmap_resource(struct rte_vmbus_device *dev)
/* free uio resource */
rte_free(uio_res);
- /* close fd if in primary process */
+ /* close fd */
if (rte_intr_fd_get(dev->intr_handle) >= 0)
close(rte_intr_fd_get(dev->intr_handle));
--
2.34.1
More information about the dev
mailing list