hv_uio_generic: map ringbuffer phys addr
authorStephen Hemminger <stephen@networkplumber.org>
Fri, 14 Sep 2018 16:10:19 +0000 (09:10 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Sep 2018 18:33:24 +0000 (20:33 +0200)
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 <sthemmin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/uio/uio_hv_generic.c

index ba67a52675578e9282d64a3706549f992a9216bb..53f5610c6065396d8d2dc30d3f07b081eb742331 100644 (file)
@@ -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