linux/drivers/net/ethernet/broadcom
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
..
bnx2x Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-05-13 14:31:43 -04:00
genet net: bcmgenet: enable MoCA link state change detection 2015-04-01 13:40:18 -04:00
b44.c MIPS: BCM47xx: Move NVRAM header to the include/linux/. 2015-04-01 17:22:00 +02:00
b44.h
bcm63xx_enet.c bcm63xx_enet: fix poll callback. 2015-03-04 15:44:52 -05:00
bcm63xx_enet.h
bcmsysport.c net: systemport: rewrite bcm_sysport_rx_refill 2015-05-30 23:51:17 -07:00
bcmsysport.h net: systemport: Pre-calculate and utilize cb->bd_addr 2015-05-30 23:51:09 -07:00
bgmac.c bgmac: fix requests for extra polling calls from NAPI 2015-04-24 11:31:27 -04:00
bgmac.h bgmac: drop ring->num_slots 2015-04-14 14:57:11 -04:00
bnx2_fw.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
bnx2.c bnx2: disable toggling of rxvlan if necessary 2015-03-01 23:25:51 -05:00
bnx2.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic_defs.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
cnic_if.h bnx2-cnic: Driver Version Update 2015-02-20 15:46:49 -05:00
cnic.c bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic.h cnic: Rebranding cnic driver. 2014-06-25 16:27:27 -07:00
Kconfig bgmac: allow enabling on ARCH_BCM_5301X 2015-03-20 21:44:56 -04:00
Makefile net: systemport: hook SYSTEMPORT driver in the build 2014-04-26 12:57:40 -04:00
sb1250-mac.c net: ethernet: broadcom: drop owner assignment from platform_drivers 2014-10-20 16:21:05 +02:00
tg3.c bnx2x, tg3: Replace put_page(virt_to_head_page()) with skb_free_frag() 2015-05-12 10:39:27 -04:00
tg3.h tg3: prevent ifup/ifdown during PCI error recovery 2014-09-02 13:02:19 -07:00