aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/ice/ice_lib.c4
-rw-r--r--sys/dev/ice/if_ice_iflib.c12
2 files changed, 9 insertions, 7 deletions
diff --git a/sys/dev/ice/ice_lib.c b/sys/dev/ice/ice_lib.c
index b14f63de4069..4c1b48db18e1 100644
--- a/sys/dev/ice/ice_lib.c
+++ b/sys/dev/ice/ice_lib.c
@@ -1929,7 +1929,7 @@ ice_control_rx_queue(struct ice_vsi *vsi, u16 qidx, bool enable)
int
ice_control_all_rx_queues(struct ice_vsi *vsi, bool enable)
{
- int i, err;
+ int i, err = 0;
/* TODO: amortize waits by changing all queues up front and then
* checking their status afterwards. This will become more necessary
@@ -1941,7 +1941,7 @@ ice_control_all_rx_queues(struct ice_vsi *vsi, bool enable)
break;
}
- return (0);
+ return (err);
}
/**
diff --git a/sys/dev/ice/if_ice_iflib.c b/sys/dev/ice/if_ice_iflib.c
index 88f2e276da69..4a8f35ac9aad 100644
--- a/sys/dev/ice/if_ice_iflib.c
+++ b/sys/dev/ice/if_ice_iflib.c
@@ -2121,7 +2121,7 @@ ice_if_init(if_ctx_t ctx)
device_printf(dev,
"Unable to configure the main VSI for Tx: %s\n",
ice_err_str(err));
- goto err_init_failed;
+ goto err_cleanup_tx;
}
err = ice_cfg_vsi_for_rx(&sc->pf_vsi);
@@ -2135,9 +2135,9 @@ ice_if_init(if_ctx_t ctx)
err = ice_control_all_rx_queues(&sc->pf_vsi, true);
if (err) {
device_printf(dev,
- "Unable to enable Rx rings for transmit: %s\n",
+ "Unable to enable Rx rings for receive: %s\n",
ice_err_str(err));
- goto err_cleanup_tx;
+ goto err_stop_rx;
}
err = ice_cfg_pf_default_mac_filters(sc);
@@ -4519,7 +4519,7 @@ ice_subif_if_init(if_ctx_t ctx)
device_printf(dev,
"Unable to configure subif VSI for Tx: %s\n",
ice_err_str(err));
- goto err_init_failed;
+ goto err_cleanup_tx;
}
err = ice_cfg_vsi_for_rx(vsi);
@@ -4535,7 +4535,7 @@ ice_subif_if_init(if_ctx_t ctx)
device_printf(dev,
"Unable to enable subif Rx rings for receive: %s\n",
ice_err_str(err));
- goto err_cleanup_tx;
+ goto err_stop_rx;
}
ice_configure_all_rxq_interrupts(vsi);
@@ -4544,6 +4544,8 @@ ice_subif_if_init(if_ctx_t ctx)
ice_set_state(&mif->state, ICE_STATE_DRIVER_INITIALIZED);
return;
+err_stop_rx:
+ ice_control_all_rx_queues(vsi, false);
err_cleanup_tx:
ice_vsi_disable_tx(vsi);
err_init_failed: