gfar_clean_rx_ring() was designed to be called from napi (rx softirq) context to do the Rx processing. Calling it from a process context like this is a bug as it will clearly race with the napi Rx processing. There's also no point in initializing num_txbdfree since startup_gfar() already does that, when bringing the device up again (after reset). Changing num_txbdfree "on-the-fly" like this is also subject to race conditions. num_txbdfree is handled by the Tx processing path and the device reset procedure. Also, don't assume that num_rx_queues is always equal to num_tx_queues. Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
|---|---|---|
| .. | ||
| fs_enet | ||
| fec.h | ||
| fec_main.c | ||
| fec_mpc52xx.c | ||
| fec_mpc52xx.h | ||
| fec_mpc52xx_phy.c | ||
| fec_ptp.c | ||
| fsl_pq_mdio.c | ||
| gianfar.c | ||
| gianfar.h | ||
| gianfar_ethtool.c | ||
| gianfar_ptp.c | ||
| Kconfig | ||
| Makefile | ||
| ucc_geth.c | ||
| ucc_geth.h | ||
| ucc_geth_ethtool.c | ||
| xgmac_mdio.c | ||