The ring buffer is contiguous IOVA and is mapped via phys addr
for sysfs file. Use same method for the UIO mapping.

Signed-off-by: Stephen Hemminger <sthem...@microsoft.com>
---
 drivers/uio/uio_hv_generic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/uio/uio_hv_generic.c b/drivers/uio/uio_hv_generic.c
index ba67a5267557..53f5610c6065 100644
--- a/drivers/uio/uio_hv_generic.c
+++ b/drivers/uio/uio_hv_generic.c
@@ -224,10 +224,10 @@ hv_uio_probe(struct hv_device *dev,
        /* mem resources */
        pdata->info.mem[TXRX_RING_MAP].name = "txrx_rings";
        pdata->info.mem[TXRX_RING_MAP].addr
-               = (uintptr_t)page_address(dev->channel->ringbuffer_page);
+               = 
(uintptr_t)virt_to_phys(page_address(dev->channel->ringbuffer_page));
        pdata->info.mem[TXRX_RING_MAP].size
                = dev->channel->ringbuffer_pagecount << PAGE_SHIFT;
-       pdata->info.mem[TXRX_RING_MAP].memtype = UIO_MEM_LOGICAL;
+       pdata->info.mem[TXRX_RING_MAP].memtype = UIO_MEM_IOVA;
 
        pdata->info.mem[INT_PAGE_MAP].name = "int_page";
        pdata->info.mem[INT_PAGE_MAP].addr
-- 
2.18.0

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to