If requesting MSI-X interrupts fails while DRIVER_OK is being set, leave
the device status unchanged instead of advertising a ready device without
working interrupts.

Signed-off-by: Xiong Weimin <[email protected]>
---
 drivers/vdpa/alibaba/eni_vdpa.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/vdpa/alibaba/eni_vdpa.c b/drivers/vdpa/alibaba/eni_vdpa.c
index e476504db..d67bdf5ab 100644
--- a/drivers/vdpa/alibaba/eni_vdpa.c
+++ b/drivers/vdpa/alibaba/eni_vdpa.c
@@ -216,7 +216,10 @@ static void eni_vdpa_set_status(struct vdpa_device *vdpa, 
u8 status)
 
        if (status & VIRTIO_CONFIG_S_DRIVER_OK &&
            !(s & VIRTIO_CONFIG_S_DRIVER_OK)) {
-               eni_vdpa_request_irq(eni_vdpa);
+               if (eni_vdpa_request_irq(eni_vdpa)) {
+                       WARN_ON(1);
+                       return;
+               }
        }
 
        vp_legacy_set_status(ldev, status);
-- 
2.43.0


Reply via email to