vdpa: introduce config operations for associating ASID to a virtqueue group
authorGautam Dawar <gautam.dawar@xilinx.com>
Wed, 30 Mar 2022 18:03:47 +0000 (23:33 +0530)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 31 May 2022 16:44:28 +0000 (12:44 -0400)
This patch introduces a new bus operation to allow the vDPA bus driver
to associate an ASID to a virtqueue group.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Gautam Dawar <gdawar@xilinx.com>
Message-Id: <20220330180436.24644-8-gdawar@xilinx.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
include/linux/vdpa.h

index 1515748e84ff253cd3750d5273fcdbe9dc1a5c29..f336d253db3d901cedb1bfdb08c3a6c593599158 100644 (file)
@@ -240,6 +240,12 @@ struct vdpa_map_file {
  *                             @vdev: vdpa device
  *                             Returns the iova range supported by
  *                             the device.
+ * @set_group_asid:            Set address space identifier for a
+ *                             virtqueue group
+ *                             @vdev: vdpa device
+ *                             @group: virtqueue group
+ *                             @asid: address space id for this group
+ *                             Returns integer: success (0) or error (< 0)
  * @set_map:                   Set device memory mapping (optional)
  *                             Needed for device that using device
  *                             specific DMA translation (on-chip IOMMU)
@@ -325,6 +331,8 @@ struct vdpa_config_ops {
                       u64 iova, u64 size, u64 pa, u32 perm, void *opaque);
        int (*dma_unmap)(struct vdpa_device *vdev, unsigned int asid,
                         u64 iova, u64 size);
+       int (*set_group_asid)(struct vdpa_device *vdev, unsigned int group,
+                             unsigned int asid);
 
        /* Free device resources */
        void (*free)(struct vdpa_device *vdev);