[PATCH v2 0/8] VMCI: dma dg: Add support for DMA datagrams

From: Jorgen Hansen
Date: Thu Feb 03 2022 - 08:18:18 EST


A new version of the VMCI device will introduce two new major changes:
- support MMIO access to device registers
- support send/receive of datagrams using DMA transfers instead of
ioread8_rep/iowrite8_rep operations
This patch series updates the VMCI driver to support these new
features while maintaining backwards compatibility.

The DMA based datagram operations use a send and a receive buffer
allocated at module load time. The buffer contains a header
describing the layout of the buffer followed by either an SG list or
inline data. The header also contains a flag indicating whether the
buffer is currently owned by the driver or the device. Both for send
and receive, the driver will initialize the buffer, transfer ownership
to the device by writing the buffer address to a register, and then
wait for the ownership to be transferred back. The device will
generate an interrupt when this happens.

v2 (fixes issues flagged by kernel test robot <lkp@xxxxxxxxx>):
- changed type of mmio_base to void __iomem *
- made vmci_read_reg, vmci_write_reg and vmci_write_data static functions

Jorgen Hansen (8):
VMCI: dma dg: whitespace formatting change for vmci register defines
VMCI: dma dg: add MMIO access to registers
VMCI: dma dg: detect DMA datagram capability
VMCI: dma dg: set OS page size
VMCI: dma dg: register dummy IRQ handlers for DMA datagrams
VMCI: dma dg: allocate send and receive buffers for DMA datagrams
VMCI: dma dg: add support for DMA datagrams sends
VMCI: dma dg: add support for DMA datagrams receive

drivers/misc/vmw_vmci/vmci_guest.c | 340 ++++++++++++++++++++++++-----
include/linux/vmw_vmci_defs.h | 84 ++++++-
2 files changed, 361 insertions(+), 63 deletions(-)

--
2.25.1