This set of patches fixes the problem where DPDK applications using hv_uio_generic driver can not be successfully restarted.
In order to get this working it required small change to uio to allow for mapping without no-cache. And refactoring of how ring buffer is setup in vmbus code. It could be backported as a fix, to 4.19 but that is not an LTS so probably not worth it. v2 - add refcount unwind in hv_uio_generic open in case of error Stephen Hemminger (6): vmbus: pass channel to hv_process_channel_removal vmbus: keep pointer to ring buffer page vmbus: split ring buffer allocation from open uio: introduce UIO_MEM_IOVA hv_uio_generic: map ringbuffer phys addr uio_hv_generic: defer opening vmbus until first use drivers/hv/channel.c | 276 ++++++++++++++++++++--------------- drivers/hv/channel_mgmt.c | 17 +-- drivers/hv/ring_buffer.c | 1 + drivers/hv/vmbus_drv.c | 3 +- drivers/uio/uio.c | 24 +-- drivers/uio/uio_hv_generic.c | 109 ++++++++++---- include/linux/hyperv.h | 13 +- include/linux/uio_driver.h | 1 + 8 files changed, 264 insertions(+), 180 deletions(-) -- 2.18.0 _______________________________________________ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel