linux/drivers/net
Russell King (Oracle) cae6172a94 net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports
[ Upstream commit 04ec4e6250 ]

Martyn Welch reports that his CPU port is unable to link where it has
been necessary to use one of the switch ports with an internal PHY for
the CPU port. The reason behind this is the port control register is
left forcing the link down, preventing traffic flow.

This occurs because during initialisation, phylink expects the link to
be down, and DSA forces the link down by synthesising a call to the
DSA drivers phylink_mac_link_down() method, but we don't touch the
forced-link state when we later reconfigure the port.

Resolve this by also unforcing the link state when we are operating in
PHY mode and the PPU is set to poll the PHY to retrieve link status
information.

Reported-by: Martyn Welch <martyn.welch@collabora.com>
Tested-by: Martyn Welch <martyn.welch@collabora.com>
Fixes: 3be98b2d5f ("net: dsa: Down cpu/dsa ports phylink will control")
Cc: <stable@vger.kernel.org> # 5.7: 2b29cb9e3f7f: net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's"
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1mvFhP-00F8Zb-Ul@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-09-23 14:16:57 +02:00
..
appletalk
arcnet net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe() 2022-03-08 19:09:35 +01:00
bonding bonding: 802.3ad: fix no transmission of LACPDUs 2022-08-31 17:15:17 +02:00
caif caif_virtio: fix race between virtio_device_ready() and ndo_open() 2022-07-07 17:52:18 +02:00
can can: mcp251x: Fix race condition on receive interrupt 2022-08-25 11:37:56 +02:00
dsa net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports 2022-09-23 14:16:57 +02:00
ethernet tg3: Disable tg3 device on system reboot to avoid triggering AER 2022-09-20 12:38:31 +02:00
fddi
fjes
hamradio hamradio: remove needs_free_netdev to avoid UAF 2022-04-20 09:23:09 +02:00
hippi drivers: net: hippi: Fix deadlock in rr_close() 2022-05-09 09:05:06 +02:00
hyperv hv_netvsc: Fix potential dereference of NULL pointer 2022-06-09 10:21:12 +02:00
ieee802154 ieee802154: cc2520: add rc code in cc2520_tx() 2022-09-20 12:38:32 +02:00
ipa net: ipa: don't assume SMEM is page-aligned 2022-08-31 17:15:16 +02:00
ipvlan net: ipvtap - add __init/__exit annotations to module init/exit funcs 2022-08-31 17:15:17 +02:00
mdio net: mdio: Alphabetically sort header inclusion 2022-04-20 09:23:12 +02:00
netdevsim net: Use u64_stats_fetch_begin_irq() for stats fetch. 2022-09-08 11:11:40 +02:00
pcs
phy net: sfp: fix memory leak in sfp_probe() 2022-07-21 21:20:15 +02:00
plip plip: avoid rcu debug splat 2022-08-25 11:37:59 +02:00
ppp ppp: ensure minimum packet size in ppp_write() 2022-01-27 10:54:01 +01:00
slip drivers: net: slip: fix NPD bug in sl_tx_timeout() 2022-04-20 09:23:24 +02:00
team
usb Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP" 2022-08-21 15:16:25 +02:00
vmxnet3 net: vmxnet3: fix possible NULL pointer dereference in vmxnet3_rq_cleanup() 2022-05-25 09:17:58 +02:00
wan
wimax
wireguard wireguard: allowedips: don't corrupt stack when detecting overflow 2022-08-21 15:15:52 +02:00
wireless wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in il4965_rs_fill_link_cmd() 2022-09-15 11:32:02 +02:00
xen-netback xen-netback: only remove 'hotplug-status' when the vif is actually destroyed 2022-09-15 11:32:05 +02:00
bareudp.c bareudp: use ipv6_mod_enabled to check if IPv6 enabled 2022-04-08 14:40:22 +02:00
dummy.c
eql.c
geneve.c geneve: fix TOS inheriting for ipv4 2022-08-25 11:38:02 +02:00
gtp.c
ifb.c
Kconfig lib/crypto: blake2s: include as built-in 2022-05-30 09:33:26 +02:00
LICENSE.SRC
loopback.c
macsec.c net: macsec: fix potential resource leak in macsec_add_rxsa() and macsec_add_txsa() 2022-08-03 12:00:48 +02:00
macvlan.c
macvtap.c macvtap: advertise link netns via netlink 2022-04-13 21:00:59 +02:00
Makefile
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c net: sungem_phy: Add of_node_put() for reference returned by of_get_parent() 2022-08-03 12:00:46 +02:00
tap.c tuntap: add sanity checks about msg_controllen in sendmsg 2022-04-13 21:00:59 +02:00
thunderbolt.c
tun.c tun: avoid double free in tun_free_netdev 2022-08-11 13:06:44 +02:00
veth.c veth: Ensure eth header is in skb's linear part 2022-04-20 09:23:11 +02:00
virtio_net.c virtio_net: fix memory leak inside XPD_TX with mergeable 2022-08-25 11:37:57 +02:00
vrf.c
vsockmon.c
vxlan.c vxlan: fix error return code in vxlan_fdb_append 2022-04-27 13:53:53 +02:00
xen-netfront.c xen-netfront: restore __skb_queue_tail() positioning in xennet_get_responses() 2022-07-07 17:52:23 +02:00