ixgbevf: ensure xdp_ring resources are free'd on error exit
authorColin Ian King <colin.king@canonical.com>
Tue, 27 Mar 2018 14:21:48 +0000 (15:21 +0100)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 24 Apr 2018 15:20:40 +0000 (08:20 -0700)
The current error handling for failed resource setup for xdp_ring
data is a break out of the loop and returning 0 indicated everything
was OK, when in fact it is not.  Fix this by exiting via the
error exit label err_setup_tx that will clean up the resources
correctly and return and error status.

Detected by CoverityScan, CID#1466879 ("Logically dead code")

Fixes: 21092e9ce8b1 ("ixgbevf: Add support for XDP_TX action")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c

index 3d9033f26effa743fc4142a6b99a64d7a5effcfd..e3d04f226d57f10a22aff7424a0cb90a28b58602 100644 (file)
@@ -3420,7 +3420,7 @@ static int ixgbevf_setup_all_tx_resources(struct ixgbevf_adapter *adapter)
                if (!err)
                        continue;
                hw_dbg(&adapter->hw, "Allocation for XDP Queue %u failed\n", j);
-               break;
+               goto err_setup_tx;
        }
 
        return 0;