linux/drivers/net/ethernet
Florian Fainelli 704d33e700 net: systemport: reset UniMAC coming out of a suspend cycle
bcm_sysport_resume() was missing an UniMAC reset which can lead to
various receive FIFO corruptions coming out of a suspend cycle. If the
RX FIFO is stuck, it will deliver corrupted/duplicate packets towards
the host CPU interface.

This could be reproduced on crowded network and when Wake-on-LAN is
enabled for this particular interface because the switch still forwards
packets towards the host CPU interface (SYSTEMPORT), and we had to leave
the UniMAC RX enable bit on to allow matching MagicPackets.

Once we re-enter the resume function, there is a small window during
which the UniMAC receive is still enabled, and we start queueing
packets, but the RDMA and RBUF engines are not ready, which leads to
having packets stuck in the UniMAC RX FIFO, ultimately delivered towards
the host CPU as corrupted.

Fixes: 40755a0fce ("net: systemport: add suspend and resume support")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-10-28 17:08:47 -04:00
..
3com Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-10-08 16:22:22 -04:00
8390 PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
adaptec PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
adi net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
aeroflex greth: moved TX ring cleaning to NAPI rx poll func 2014-09-05 21:57:09 -07:00
agere et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
allwinner net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
alteon PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
altera Altera TSE: Add support for no PHY 2014-10-05 21:39:40 -04:00
amd amd-xgbe: Fix napi Rx budget accounting 2014-10-22 17:50:31 -04:00
apm drivers: net: xgene: Rewrite buggy loop in xgene_enet_ecc_init() 2014-10-25 17:05:20 -04:00
apple
arc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-09-23 12:09:27 -04:00
atheros PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
broadcom net: systemport: reset UniMAC coming out of a suspend cycle 2014-10-28 17:08:47 -04:00
brocade bna: fix skb->truesize underestimation 2014-10-17 23:56:33 -04:00
cadence net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
calxeda net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
chelsio cxgb4 : Handle dcb enable correctly 2014-10-27 19:00:09 -04:00
cirrus cirrus: cs89x0: Use managed interfaces 2014-08-02 16:40:52 -07:00
cisco enic: Do not call napi_disable when preemption is disabled. 2014-10-21 15:24:25 -04:00
davicom net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
dec tulip: dmfe: Fix global namespace pollution of phy accessors. 2014-08-27 18:25:40 -07:00
dlink PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
emulex be2net: fix alignment on line wrap 2014-09-22 15:01:09 -04:00
faraday
freescale net: fec: ptp: fix NULL pointer dereference if ptp_clock is not set 2014-10-22 17:48:06 -04:00
fujitsu drivers/net: ethernet: Remove typedef for struct and enum 2014-08-07 16:02:58 -07:00
hisilicon
hp hp100: Convert the normal skb free path to dev_consume_skb_any() 2014-09-08 15:39:58 -07:00
i825xx
ibm ehea: Fix TSO and hw checksums with non-accelerated vlan packets. 2014-08-25 17:27:09 -07:00
icplus PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
intel i40e: _MASK vs _SHIFT typo in i40e_handle_mdd_event() 2014-10-25 16:50:56 -04:00
marvell net: pxa168_eth: PXA168_ETH should depend on HAS_DMA 2014-10-10 14:45:01 -04:00
mellanox net/mlx4_core: Call synchronize_irq() before freeing EQ buffer 2014-10-26 22:46:04 -04:00
micrel net: ks8842: use dmaengine_terminate_all() API 2014-10-15 21:31:00 +05:30
microchip
moxa net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
myricom PCI changes for the v3.17 merge window (part 2): 2014-08-14 18:10:33 -06:00
natsemi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
neterion net: ethernet: neterion: vxge: vxge-main.c: Cleaning up missing null-terminate in conjunction with strncpy 2014-09-15 14:17:00 -04:00
nuvoton net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
nvidia ethernet: nvidia: Remove extra parens 2014-09-02 13:47:25 -07:00
nxp net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
octeon drivers: net: ethernet: octeon_mgmt: fix a compiler warning 2014-09-08 14:23:46 -07:00
oki-semi pch_gbe: 'select' NET_PTP_CLASSIFY. 2014-09-22 13:25:51 -04:00
packetengines drivers/net: Convert remaining uses of pr_warning to pr_warn 2014-09-09 20:37:08 -07:00
pasemi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
qlogic qlcnic: Fix number of arguments in destroy tx context command 2014-10-14 17:05:18 -04:00
qualcomm net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
rdc PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
realtek r8169:add support for RTL8168EP 2014-10-08 15:58:45 -04:00
renesas net: sh_eth: fix driver dependencies 2014-09-02 13:23:25 -07:00
samsung
seeq
sfc sfc: remove incorrect EFX_BUG_ON_PARANOID check 2014-10-22 12:51:16 -04:00
sgi PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
silan PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
sis PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
smsc net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
stmicro stmmac: fix sti compatibililies 2014-10-15 11:45:42 -04:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc 2014-10-11 20:36:34 -04:00
tehuti PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
ti drivers: net:cpsw: fix probe_dt when only slave 1 is pinned out 2014-10-28 15:44:35 -04:00
tile Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
toshiba net: spider_net: avoid using signed char for bitops 2014-10-05 21:15:16 -04:00
tundra
via Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-10-07 21:16:26 -04:00
wiznet net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
xilinx net: ll_temac: Remove unnecessary ether_setup after alloc_etherdev 2014-10-01 15:01:10 -04:00
xircom ethernet: amd: Remove typedef local_info_t 2014-08-11 12:19:53 -07:00
xscale
dnet.c net: dnet: Use managed interfaces 2014-08-02 16:40:52 -07:00
dnet.h
ec_bhf.c net: ec_bhf: remove excessive debug messages 2014-08-24 18:36:57 -07:00
ethoc.c net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
fealnx.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
jme.c PCI: Remove DEFINE_PCI_DEVICE_TABLE macro use 2014-08-12 12:15:14 -06:00
jme.h
Kconfig et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
korina.c
lantiq_etop.c net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
Makefile et131x: Add PCIe gigabit ethernet driver et131x to drivers/net 2014-10-03 12:22:19 -07:00
netx-eth.c net: ethernet: Remove superfluous ether_setup after alloc_etherdev 2014-10-03 15:31:40 -07:00
s6gmac.c