vDPA: add get_vq_irq() in vdpa_config_ops
authorZhu Lingshan <lingshan.zhu@intel.com>
Fri, 31 Jul 2020 06:55:30 +0000 (14:55 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 5 Aug 2020 15:08:42 +0000 (11:08 -0400)
This commit adds a new function get_vq_irq() in struct
vdpa_config_ops, which will return the irq number of a
virtqueue.

Signed-off-by: Zhu Lingshan <lingshan.zhu@intel.com>
Suggested-by: Jason Wang <jasowang@redhat.com>
Link: https://lore.kernel.org/r/20200731065533.4144-4-lingshan.zhu@intel.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
include/linux/vdpa.h

index 29b8296f14147ba60609a4434966f03f18d7ef8e..5c530a64aa066ca84cc6388a917ef2f38c809e0f 100644 (file)
@@ -89,6 +89,12 @@ struct vdpa_device {
  *                             @vdev: vdpa device
  *                             @idx: virtqueue index
  *                             Returns the notifcation area
+ * @get_vq_irq:                        Get the irq number of a virtqueue (optional,
+ *                             but must implemented if require vq irq offloading)
+ *                             @vdev: vdpa device
+ *                             @idx: virtqueue index
+ *                             Returns int: irq number of a virtqueue,
+ *                             negative number if no irq assigned.
  * @get_vq_align:              Get the virtqueue align requirement
  *                             for the device
  *                             @vdev: vdpa device
@@ -180,6 +186,7 @@ struct vdpa_config_ops {
        u64 (*get_vq_state)(struct vdpa_device *vdev, u16 idx);
        struct vdpa_notification_area
        (*get_vq_notification)(struct vdpa_device *vdev, u16 idx);
+       int (*get_vq_irq)(struct vdpa_device *vdv, u16 idx);
 
        /* Device ops */
        u32 (*get_vq_align)(struct vdpa_device *vdev);