summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorClaudiu Manoil <claudiu.manoil@freescale.com>2014-03-14 12:20:20 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-26 00:18:24 (GMT)
commit18083beb1af06a825df880ea61c7431f91eb65d2 (patch)
treec2e6ef673c6db8704a80bbbd3ff79da6f7f14fd4 /drivers
parent2bd36cbf3554ccf06dab56ec0249837ecab7356f (diff)
downloadlinux-fsl-qoriq-18083beb1af06a825df880ea61c7431f91eb65d2.tar.xz
gianfar: Compile out multi-queue polling
Multi-Queue polling support is phasing out, as it imposes unnecessary processing overhead that degenerates in Tx congestion and even Tx timeout. Its place is taken by Single-Queue polling and all the currently supported gianfar devices already work in Single-Queue polling mode. So the Multi-Queue polling may be compiled out, for better performance (i.e. icache utilization). Change-Id: I1f1ff4edd112606135e6c99780fd54f333cdb0e9 Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/9990 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Rajan Gupta <rajan.gupta@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/freescale/gianfar.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 307b70c..652b819 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -137,10 +137,15 @@ static void free_skb_resources(struct gfar_private *priv);
static void gfar_set_multi(struct net_device *dev);
static void gfar_set_hash_for_addr(struct net_device *dev, u8 *addr);
static void gfar_configure_serdes(struct net_device *dev);
-static int gfar_poll_rx(struct napi_struct *napi, int budget);
-static int gfar_poll_tx(struct napi_struct *napi, int budget);
static int gfar_poll_rx_sq(struct napi_struct *napi, int budget);
static int gfar_poll_tx_sq(struct napi_struct *napi, int budget);
+#ifdef GFAR_MQ_POLLING
+static int gfar_poll_rx(struct napi_struct *napi, int budget);
+static int gfar_poll_tx(struct napi_struct *napi, int budget);
+#else
+#define gfar_poll_rx gfar_poll_rx_sq
+#define gfar_poll_tx gfar_poll_tx_sq
+#endif
#ifdef CONFIG_NET_POLL_CONTROLLER
static void gfar_netpoll(struct net_device *dev);
#endif
@@ -2975,6 +2980,7 @@ static int gfar_poll_tx_sq(struct napi_struct *napi, int budget)
return 0;
}
+#ifdef GFAR_MQ_POLLING
static int gfar_poll_rx(struct napi_struct *napi, int budget)
{
struct gfar_priv_grp *gfargrp =
@@ -3074,7 +3080,7 @@ static int gfar_poll_tx(struct napi_struct *napi, int budget)
return 0;
}
-
+#endif
#ifdef CONFIG_NET_POLL_CONTROLLER
/* Polling 'interrupt' - used by things like netconsole to send skbs