From a648aa60a34dd2ab5dbfbe691bdbf1cd5253dcdd Mon Sep 17 00:00:00 2001 From: Madalin Bucur Date: Thu, 15 Jan 2015 14:07:45 +0200 Subject: dpaa_eth: release CGR ids after delete Improper ordering of CGR release and delete operations lead to QMan CGR list corruption. Signed-off-by: Madalin Bucur Change-Id: I7817210fbc71d5b7b414ba866c588e97e89e39f0 Reviewed-on: http://git.am.freescale.net:8181/28533 Tested-by: Review Code-CDREVIEW Reviewed-by: Marian Cristian Rotariu diff --git a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c index 74f67f5..6ef3bdf 100644 --- a/drivers/net/ethernet/freescale/dpa/dpaa_eth.c +++ b/drivers/net/ethernet/freescale/dpa/dpaa_eth.c @@ -1085,11 +1085,11 @@ pfc_mapping_failed: #endif dpa_fq_free(dev, &priv->dpa_fq_list); fq_alloc_failed: + qman_delete_cgr_safe(&priv->ingress_cgr); qman_release_cgrid(priv->ingress_cgr.cgrid); - qman_delete_cgr(&priv->ingress_cgr); rx_cgr_init_failed: + qman_delete_cgr_safe(&priv->cgr_data.cgr); qman_release_cgrid(priv->cgr_data.cgr.cgrid); - qman_delete_cgr(&priv->cgr_data.cgr); tx_cgr_init_failed: add_channel_failed: get_channel_failed: -- cgit v0.10.2