[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1476792760-60356-1-git-send-email-john@phrozen.org>
Date: Tue, 18 Oct 2016 14:12:40 +0200
From: John Crispin <john@...ozen.org>
To: Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...oirfairelinux.com>,
Florian Fainelli <f.fainelli@...il.com>,
"David S. Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
John Crispin <john@...ozen.org>
Subject: [PATCH] net: dsa: properly disconnect the slave PHYs
The shutdown code only stopped the PHYs but does not diconnect them
properly. This could lead to null pointer deref related kernel oopses
during reboot. Fix this by calling phy_disconnect() after the PHYs are
stopped.
Signed-off-by: John Crispin <john@...ozen.org>
---
net/dsa/slave.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 68714a5..725d9f7 100644
--- a/net/dsa/slave.c
+++ b/net/dsa/slave.c
@@ -154,8 +154,10 @@ static int dsa_slave_close(struct net_device *dev)
struct net_device *master = p->parent->dst->master_netdev;
struct dsa_switch *ds = p->parent;
- if (p->phy)
+ if (p->phy) {
phy_stop(p->phy);
+ phy_disconnect(p->phy);
+ }
dev_mc_unsync(master, dev);
dev_uc_unsync(master, dev);
--
1.7.10.4
Powered by blists - more mailing lists