summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c b/drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
index 31f84ae41653..9789a082a3a8 100644
--- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-xsk.c
@@ -203,7 +203,7 @@ static int dpaa2_xsk_enable_pool(struct net_device *dev,
{
struct dpaa2_eth_priv *priv = netdev_priv(dev);
struct dpni_pools_cfg pools_params = { 0 };
- int i, err;
+ int i, err, err2;
bool up;
if (priv->dpni_attrs.wriop_version != DPAA2_WRIOP_VERSION(3, 0, 0))
@@ -242,7 +242,7 @@ static int dpaa2_xsk_enable_pool(struct net_device *dev,
priv->bp[priv->num_bps] = dpaa2_eth_allocate_dpbp(priv);
if (IS_ERR(priv->bp[priv->num_bps])) {
err = PTR_ERR(priv->bp[priv->num_bps]);
- goto err_mem_model;
+ goto err_bp_alloc;
}
priv->channel[qid]->xsk_zc = true;
priv->channel[qid]->xsk_pool = pool;
@@ -260,7 +260,7 @@ static int dpaa2_xsk_enable_pool(struct net_device *dev,
err = dpni_set_pools(priv->mc_io, 0, priv->mc_token, &pools_params);
if (err) {
netdev_err(dev, "dpni_set_pools() failed\n");
- goto err_free_dpbp;
+ goto err_set_pools;
}
if (up) {
@@ -274,19 +274,18 @@ static int dpaa2_xsk_enable_pool(struct net_device *dev,
return 0;
-err_free_dpbp:
- err |= dpaa2_xsk_disable_pool(dev, qid);
- if (up)
- dpaa2_eth_open(dev);
- return err;
+err_set_pools:
+ err2 = dpaa2_xsk_disable_pool(dev, qid);
+ if (err2)
+ netdev_err(dev, "dpaa2_xsk_disable_pool() failed %d\n", err2);
+err_bp_alloc:
+ err2 = xdp_rxq_info_reg_mem_model(&priv->channel[qid]->xdp_rxq,
+ MEM_TYPE_PAGE_ORDER0, NULL);
+ if (err2)
+ netdev_err(dev, "xsk_rxq_info_reg_mem_model() failed with %d)\n", err2);
err_mem_model:
- err = xdp_rxq_info_reg_mem_model(&priv->channel[qid]->xdp_rxq,
- MEM_TYPE_PAGE_ORDER0, NULL);
- if (err)
- netdev_err(dev, "xsk_rxq_info_reg_mem_model() failed (err = %d)\n",
- err);
-err_dma_unmap:
xsk_pool_dma_unmap(pool, 0);
+err_dma_unmap:
if (up)
dpaa2_eth_open(dev);