summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale
diff options
context:
space:
mode:
authorSandeep Malik <Sandeep.Malik@freescale.com>2014-05-09 13:28:13 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-05-09 16:07:36 (GMT)
commitc413b7a34a8eef5b581570c8da1df9b9972f3971 (patch)
tree9506371737b3131c533b0de756f78bbf2dae31ea /drivers/net/ethernet/freescale
parent98345f7c55a5a52b30aa0982cec8644ad9636bdb (diff)
downloadlinux-fsl-qoriq-c413b7a34a8eef5b581570c8da1df9b9972f3971.tar.xz
asf_gfar: Patch to fix the crash seen in ifup for bsc9132.
ASF uses two TX queues to avoid contention. BSC9132 even though having controller which can support two groups was having the DTS file written for one group. To fix this we allow ASF to override the default tx queue mapping with the "fsl,tx-bit-map" value given in the DT. This patch resolves the crash seen in case of bsc9132 board when the network interface is up and trying to xmit the packet. Signed-off-by: Sandeep Malik <Sandeep.Malik@freescale.com> --- CQ:ENGR311623 Change-Id: I9d61b0ac73674774f4b674836478048e9a0c8873 Reviewed-on: http://git.am.freescale.net:8181/12091 Reviewed-by: Claudiu Manoil <claudiu.manoil@freescale.com> Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale')
-rw-r--r--drivers/net/ethernet/freescale/gianfar.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 9844e1a..8ce76ec 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -704,6 +704,12 @@ static int gfar_parse_group(struct device_node *np,
/* One Q per interrupt group: Q0 to G0, Q1 to G1 */
grp->rx_bit_map = (DEFAULT_MAPPING >> priv->num_grps);
grp->tx_bit_map = (DEFAULT_MAPPING >> priv->num_grps);
+ #ifdef CONFIG_AS_FASTPATH
+ grp->rx_bit_map = rxq_mask ?
+ *rxq_mask : (DEFAULT_MAPPING >> priv->num_grps);
+ grp->tx_bit_map = txq_mask ?
+ *txq_mask : (DEFAULT_MAPPING >> priv->num_grps);
+ #endif
} else { /* GFAR_MQ_POLLING */
grp->rx_bit_map = rxq_mask ?
*rxq_mask : (DEFAULT_MAPPING >> priv->num_grps);