Fix error handling to properly cleanup interrupts when
idpf_vport_queue_ids_init() or idpf_rx_bufs_init_all() fail. Jump to
'intr_deinit' instead of 'queues_rel' to ensure interrupts are cleaned up
before releasing other resources.

Fixes: d4d558718266 ("idpf: initialize interrupts and enable vport")
Signed-off-by: Sreedevi Joshi <[email protected]>
Reviewed-by: Madhu Chittim <[email protected]>
Reviewed-by: Aleksandr Loktionov <[email protected]>
---
 drivers/net/ethernet/intel/idpf/idpf_lib.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/idpf/idpf_lib.c 
b/drivers/net/ethernet/intel/idpf/idpf_lib.c
index 89f3b46378c4..a5051a96f2ad 100644
--- a/drivers/net/ethernet/intel/idpf/idpf_lib.c
+++ b/drivers/net/ethernet/intel/idpf/idpf_lib.c
@@ -1516,14 +1516,14 @@ static int idpf_vport_open(struct idpf_vport *vport, 
bool rtnl)
        if (err) {
                dev_err(&adapter->pdev->dev, "Failed to initialize queue 
registers for vport %u: %d\n",
                        vport->vport_id, err);
-               goto queues_rel;
+               goto intr_deinit;
        }
 
        err = idpf_rx_bufs_init_all(vport);
        if (err) {
                dev_err(&adapter->pdev->dev, "Failed to initialize RX buffers 
for vport %u: %d\n",
                        vport->vport_id, err);
-               goto queues_rel;
+               goto intr_deinit;
        }
 
        idpf_rx_init_buf_tail(vport);
-- 
2.43.0

Reply via email to