1
0
Fork 0
alistair23-linux/drivers/net/ethernet
Florian Fainelli c73b01837e net: systemport: rewrite bcm_sysport_rx_refill
Currently, bcm_sysport_desc_rx() calls bcm_sysport_rx_refill() at the end of Rx
packet processing loop, after the current Rx packet has already been passed to
napi_gro_receive(). However, bcm_sysport_rx_refill() might fail to allocate a new
Rx skb, thus leaving a hole on the Rx queue where no valid Rx buffer exists.

To eliminate this situation:

1. Rewrite bcm_sysport_rx_refill() to retain the current Rx skb on the
Rx queue if a new replacement Rx skb can't be allocated and DMA-mapped.
In this case, the data on the current Rx skb is effectively dropped.

2. Modify bcm_sysport_desc_rx() to call bcm_sysport_rx_refill() at the
top of Rx packet processing loop, so that the new replacement Rx skb is
already in place before the current Rx skb is processed.

This is loosely inspired from d6707bec59 ("net: bcmgenet: rewrite
bcmgenet_rx_refill()")

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-05-30 23:51:17 -07:00
..
3com drivers/net: Use setup_timer and mod_timer 2015-02-11 19:40:12 -08:00
8390 net:treewide: Fix typo in drivers/net 2015-04-27 13:40:53 -04:00
adaptec
adi ptp: blackfin: use helpers for converting ns to timespec. 2015-03-31 17:19:19 -04:00
aeroflex net: greth: constify of_device_id array 2015-03-17 15:00:22 -04:00
agere et131x: use msecs_to_jiffies for conversions 2015-02-11 19:37:43 -08:00
allwinner ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
alteon net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
altera altera_tse: Correct rx packet length 2015-04-29 15:19:34 -04:00
amd amd-xgbe: Add more netif_dbg output to the driver 2015-05-25 00:13:58 -04:00
apm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
apple powerpc updates for 4.1 2015-04-16 13:53:32 -05:00
arc ethernet: arc: ARC_EMAC and EMAC_ROCKCHIP should depend on HAS_DMA 2015-04-23 14:09:58 -04:00
atheros trivial: net: atl1e: atl1e_hw.h: fix 0x0x prefix 2015-04-29 14:56:39 -04:00
broadcom net: systemport: rewrite bcm_sysport_rx_refill 2015-05-30 23:51:17 -07:00
brocade ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-23 01:22:35 -04:00
calxeda ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cavium net: thunderx: add 64-bit dependency 2015-05-30 23:38:49 -07:00
chelsio cxgb4/cxgb4vf: function and argument name cleanup 2015-05-27 14:26:37 -04:00
cirrus ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
cisco enic: Grammar s/an negative/a negative/ 2015-05-24 23:03:05 -04:00
davicom dm9000: Add regulator and reset support to dm9000 2015-01-15 14:08:07 -05:00
dec Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-20 18:51:09 -04:00
dlink
emulex be2net: make hwmon interface optional 2015-05-19 16:40:04 -04:00
faraday
freescale net: fec: add support of ethtool get_regs 2015-05-11 14:09:36 -04:00
fujitsu
hisilicon net: batch of last_rx update avoidance in ethernet drivers. 2015-05-14 17:38:17 -04:00
hp
i825xx
ibm ibmveth: Add support for Large Receive Offload 2015-04-30 16:33:46 -04:00
icplus
intel i40e: Bump version to 1.3.4 2015-05-28 03:46:23 -07:00
marvell mvneta: Replace put_page(virt_to_head_page(ptr)) w/ skb_free_frag 2015-05-12 10:39:27 -04:00
mellanox net/mlx4_core: Make sure there are no pending async events when freeing CQ 2015-05-30 23:35:34 -07:00
micrel ethernet: Use eth_<foo>_addr instead of memset 2015-03-03 17:01:36 -05:00
microchip
moxa net: batch of last_rx update avoidance in ethernet drivers. 2015-05-14 17:38:17 -04:00
myricom ethernet: myri10ge: use arch_phys_wc_add() 2015-04-23 14:28:14 -04:00
natsemi net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
neterion neterion: s2io: Fix kernel doc formatting 2015-05-25 17:45:27 -04:00
nuvoton
nvidia net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
nxp
octeon netdev: octeon_mgmt: constify of_device_id array 2015-03-17 15:00:22 -04:00
oki-semi ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
packetengines ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
pasemi net: pasemi: Use setup_timer and mod_timer 2015-03-01 13:40:23 -05:00
qlogic net: qlcnic: clean up sysfs error codes 2015-05-28 20:14:45 -07:00
qualcomm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
rdc
realtek r8169: Do not use dev_kfree_skb in xmit path 2015-05-04 00:06:55 -04:00
renesas sh_eth: Mitigate lost statistics updates 2015-03-04 15:40:54 -05:00
rocker rocker: mark parameters and local variables as const 2015-05-25 18:17:08 -04:00
samsung ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
seeq
sfc sfc: add module parameter to enable MCDI logging on new functions 2015-05-27 13:54:51 -04:00
sgi
silan
sis
smsc Revert "Revert "smc91x: retrieve IRQ and trigger flags in a modern way"" 2015-05-04 15:12:33 -04:00
stmicro stmmac: add ipq806x glue layer 2015-05-30 17:04:36 -07:00
sun sungem, sunhme, sunvnet: Update drivers to use dma_wmb/rmb 2015-04-08 12:15:14 -04:00
tehuti net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
ti net: cpsw: remove redundant calls disabling dma interrupts. 2015-05-25 18:19:09 -04:00
tile net: batch of last_rx update avoidance in ethernet drivers. 2015-05-14 17:38:17 -04:00
toshiba spider_net: Use DECLARE_BITMAP 2015-05-21 17:17:50 -04:00
tundra
via via-rhine: close SMP transmit races. 2015-05-04 00:18:27 -04:00
wiznet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-20 18:51:09 -04:00
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
xircom
xscale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-03-03 21:16:48 -05:00
Kconfig net: Adding support for Cavium ThunderX network controller 2015-05-27 14:19:44 -04:00
Makefile net: Adding support for Cavium ThunderX network controller 2015-05-27 14:19:44 -04:00
dnet.c net: dnet: fix dnet_poll() 2015-01-11 21:44:55 -05:00
dnet.h
ec_bhf.c
ethoc.c net: ethoc: constify of_device_id array 2015-03-17 15:00:21 -04:00
fealnx.c
jme.c net: rename vlan_tx_* helpers since "tx" is misleading there 2015-01-13 17:51:08 -05:00
jme.h
korina.c
lantiq_etop.c
netx-eth.c