在 2022/2/3 下午3:27, Zhu Lingshan 写道:
When irq number is negative(e.g., -EINVAL), the virtqueue
may be disabled or the virtqueues are sharing a device irq.
In such case, we should not setup irq offloading for a virtqueue.

Signed-off-by: Zhu Lingshan <lingshan....@intel.com>
---
  drivers/vhost/vdpa.c | 4 ++++
  1 file changed, 4 insertions(+)

diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
index 851539807bc9..c4fcacb0de3a 100644
--- a/drivers/vhost/vdpa.c
+++ b/drivers/vhost/vdpa.c
@@ -96,6 +96,10 @@ static void vhost_vdpa_setup_vq_irq(struct vhost_vdpa *v, 
u16 qid)
        if (!ops->get_vq_irq)
                return;
+ irq = ops->get_vq_irq(vdpa, qid);
+       if (irq < 0)
+               return;
+
        irq = ops->get_vq_irq(vdpa, qid);


So the get_vq_irq() will be called twice?


        irq_bypass_unregister_producer(&vq->call_ctx.producer);
        if (!vq->call_ctx.ctx || irq < 0)


We're already checked irq against 0 here.

Thanks


_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to