From: Stephen Hemminger <sthem...@microsoft.com>

The secondary process doesn't correctly map the second
and later resources because it doesn't change the offset.

Fixes: 831dba47bd36 ("bus/vmbus: add Hyper-V virtual bus support")
Signed-off-by: Stephen Hemminger <sthem...@microsoft.com>
---
 drivers/bus/vmbus/vmbus_common_uio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bus/vmbus/vmbus_common_uio.c 
b/drivers/bus/vmbus/vmbus_common_uio.c
index 5ddd36ab62d2..46e233d9fac3 100644
--- a/drivers/bus/vmbus/vmbus_common_uio.c
+++ b/drivers/bus/vmbus/vmbus_common_uio.c
@@ -47,9 +47,10 @@ vmbus_uio_map_secondary(struct rte_vmbus_device *dev)
 
                for (i = 0; i != uio_res->nb_maps; i++) {
                        void *mapaddr;
+                       off_t offset = i * PAGE_SIZE;
 
                        mapaddr = vmbus_map_resource(uio_res->maps[i].addr,
-                                                    fd, 0,
+                                                    fd, offset,
                                                     uio_res->maps[i].size, 0);
 
                        if (mapaddr == uio_res->maps[i].addr)
-- 
2.20.1

Reply via email to