diff options
author | Claudiu Manoil <claudiu.manoil@freescale.com> | 2014-03-14 12:20:20 (GMT) |
---|---|---|
committer | Jose Rivera <German.Rivera@freescale.com> | 2014-03-26 00:18:24 (GMT) |
commit | 18083beb1af06a825df880ea61c7431f91eb65d2 (patch) | |
tree | c2e6ef673c6db8704a80bbbd3ff79da6f7f14fd4 /drivers | |
parent | 2bd36cbf3554ccf06dab56ec0249837ecab7356f (diff) | |
download | linux-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.c | 12 |
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 |