linux/drivers/net
Heiner Kallweit ed8fe20205 net: dsa: mv88e6xxx: prevent interrupt storm caused by mv88e6390x_port_set_cmode
When debugging another issue I faced an interrupt storm in this
driver (88E6390, port 9 in SGMII mode), consisting of alternating
link-up / link-down interrupts. Analysis showed that the driver
wanted to set a cmode that was set already. But so far
mv88e6390x_port_set_cmode() doesn't check this and powers down
SERDES, what causes the link to break, and eventually results in
the described interrupt storm.

Fix this by checking whether the cmode actually changes. We want
that the very first call to mv88e6390x_port_set_cmode() always
configures the registers, therefore initialize port.cmode with
a value that is different from any supported cmode value.
We have to take care that we only init the ports cmode once
chip->info->num_ports is set.

v2:
- add small helper and init the number of actual ports only

Fixes: 364e9d7776 ("net: dsa: mv88e6xxx: Power on/off SERDES on cmode change")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-03-01 21:37:05 -08:00
..
appletalk drivers/net: appletalk/cops: remove redundant if statement and mask 2018-12-24 14:48:26 -08:00
arcnet
bonding bonding: fix PACKET_ORIGDEV regression 2019-02-21 13:20:08 -08:00
caif net: caif: call dev_consume_skb_any when skb xmit done 2019-01-29 10:09:28 -08:00
can can: flexcan: fix NULL pointer exception during bringup 2019-01-22 11:35:33 +01:00
dsa net: dsa: mv88e6xxx: prevent interrupt storm caused by mv88e6390x_port_set_cmode 2019-03-01 21:37:05 -08:00
ethernet lan743x: Fix TX Stall Issue 2019-03-01 11:34:09 -08:00
fddi net: defxx: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-06 17:38:15 -08:00
fjes
hamradio net/hamradio/6pack: use mod_timer() to rearm timers 2019-01-02 10:27:01 -08:00
hippi
hyperv hv_netvsc: Fix IP header checksum for coalesced packets 2019-02-26 14:45:02 -08:00
ieee802154 ieee802154: mcr20a: fix indentation, remove tabs 2019-01-31 17:42:05 +01:00
ipvlan ipvlan: disallow userns cap_net_admin to change global mode/flags 2019-02-22 11:27:19 -08:00
netdevsim drivers: net: netdevsim: use skb_sec_path helper 2018-12-19 11:21:37 -08:00
phy net: phy: phylink: fix uninitialized variable in phylink_get_mac_state 2019-03-01 11:30:48 -08:00
plip
ppp net: Fix usage of pskb_trim_rcsum 2019-01-18 14:05:14 -08:00
slip
team team: use operstate consistently for linkup 2019-02-22 11:40:23 -08:00
usb r8152: Fix an error on RTL8153-BD MAC Address Passthrough support 2019-02-22 11:36:55 -08:00
vmxnet3 cross-tree: phase out dma_zalloc_coherent() 2019-01-08 07:58:37 -05:00
wan net: fsl_ucc_hdlc: replace dev_kfree_skb_irq by dev_consume_skb_irq for drop profiles 2019-02-06 17:38:15 -08:00
wimax
wireless mac80211_hwsim: propagate genlmsg_reply return code 2019-02-22 13:27:22 +01:00
xen-netback xen-netback: don't populate the hash cache on XenBus disconnect 2019-02-28 12:50:37 -08:00
dummy.c
eql.c
geneve.c geneve: should not call rt6_lookup() when ipv6 was disabled 2019-02-07 10:48:42 -08:00
gtp.c
ifb.c
Kconfig geneve: change NET_UDP_TUNNEL dependency to select 2019-02-12 12:23:59 -05:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: replace kfree_skb by consume_skb for drop profiles 2019-01-17 22:09:09 -08:00
macvtap.c
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c tap: call skb_probe_transport_header after setting skb->dev 2019-01-01 12:01:02 -08:00
thunderbolt.c
tun.c tun: remove unnecessary memory barrier 2019-02-25 14:27:21 -08:00
veth.c
virtio_net.c virtio_net: Account for tx bytes and packets on sending xdp_frames 2019-02-03 20:14:28 -08:00
vrf.c net: vrf: remove MTU limits for vrf device 2019-02-21 13:10:08 -08:00
vsockmon.c
vxlan.c vxlan: test dev->flags & IFF_UP before calling netif_rx() 2019-02-11 12:39:51 -08:00
xen-netfront.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-12-20 11:53:36 -08:00