linux/drivers/net
Florian Fainelli c677ba8b3c net: bcmgenet: update UMAC_CMD only when link is detected
When we bring the interface down, phy_stop() will schedule the PHY state
machine to call our link adjustment callback. By the time we do so, we
may have clock gated off the GENET hardware block, and this will cause
bus errors to happen in bcmgenet_mii_setup():

Make sure that we only touch the UMAC_CMD register when there is an
actual link. This is safe to do for two reasons:

- updating the Ethernet MAC registers only make sense when a physical
  link is present
- the PHY library state machine first set phydev->link = 0 before
  invoking phydev->adjust_link in the PHY_HALTED case

Fixes: 240524089d ("net: bcmgenet: only update UMAC_CMD if something changed")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-11 15:10:11 -07:00
..
appletalk
arcnet com20020_cs: Remove typedef com20020_dev_t 2014-08-11 12:19:53 -07:00
bonding Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-08-05 18:46:26 -07:00
caif net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
can Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-07-30 13:25:49 -07:00
cris eth_v10: remove unnecessary break after return 2014-07-20 21:29:49 -07:00
dsa
ethernet net: bcmgenet: update UMAC_CMD only when link is detected 2014-08-11 15:10:11 -07:00
fddi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-07-16 14:09:34 -07:00
hamradio net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
hippi
hyperv hyperv: Adjust the size of sendbuf region to support ws2008r2 2014-08-06 13:52:07 -07:00
ieee802154 net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
irda drivers/net/irda/kingsun-sir.c: remove null test before kfree 2014-06-19 21:26:06 -07:00
phy Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-08-05 18:46:26 -07:00
plip
ppp net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
slip net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
team team: Simplify return path of team_newlink 2014-08-05 16:37:51 -07:00
usb net: fix USB network driver config option. 2014-08-06 16:00:20 -07:00
vmxnet3 vmxnet3: fix decimal printf format specifiers prefixed with 0x 2014-08-06 14:13:37 -07:00
wan wan: wanxl: Remove typedefs from struct names 2014-08-11 12:37:04 -07:00
wimax net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
wireless airo_cs: Remove typedef local_info_t 2014-08-11 12:19:53 -07:00
xen-netback xen-netback: Don't deschedule NAPI when carrier off 2014-08-11 14:07:47 -07:00
dummy.c net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
eql.c net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
ifb.c net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
Kconfig vxlan: Call udp_sock_create 2014-07-14 16:12:15 -07:00
LICENSE.SRC
loopback.c net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
macvlan.c macvlan: Initialize vlan_features to turn on offload support. 2014-07-31 22:10:01 -07:00
macvtap.c
Makefile net: reduce USB network driver config options. 2014-08-05 16:48:59 -07:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c net: use ethtool_cmd_speed_set helper to set ethtool speed value 2014-06-06 16:24:07 -07:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c net: set name_assign_type in alloc_netdev() 2014-07-15 16:12:48 -07:00
veth.c net: rtnetlink - make create_link take name_assign_type 2014-07-15 16:13:07 -07:00
virtio_net.c virtio-net: rx busy polling support 2014-07-23 15:12:02 -07:00
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-07-30 13:25:49 -07:00
xen-netfront.c xen-netfront: Fix handling packets on compound pages with skb_linearize 2014-08-11 14:46:41 -07:00