--- /dev/null
+From 7b9a88a390dacb37b051a7b09b9a08f546edf5eb Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Fri, 17 Feb 2017 16:07:33 -0800
+Subject: net: phy: Fix PHY unbind crash
+
+From: Florian Fainelli <f.fainelli@gmail.com>
+
+commit 7b9a88a390dacb37b051a7b09b9a08f546edf5eb upstream.
+
+The PHY library does not deal very well with bind and unbind events. The first
+thing we would see is that we were not properly canceling the PHY state machine
+workqueue, so we would be crashing while dereferencing phydev->drv since there
+is no driver attached anymore.
+
+Suggested-by: Russell King <rmk+kernel@armlinux.org.uk>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/phy/phy_device.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/net/phy/phy_device.c
++++ b/drivers/net/phy/phy_device.c
+@@ -1267,6 +1267,8 @@ static int phy_remove(struct device *dev
+ {
+ struct phy_device *phydev = to_phy_device(dev);
+
++ cancel_delayed_work_sync(&phydev->state_queue);
++
+ mutex_lock(&phydev->lock);
+ phydev->state = PHY_DOWN;
+ mutex_unlock(&phydev->lock);
signal-protect-signal_unkillable-from-unintentional-clearing.patch
mm-don-t-dereference-struct-page-fields-of-invalid-pages.patch
ipv4-should-use-consistent-conditional-judgement-for-ip-fragment-in-__ip_append_data-and-ip_finish_output.patch
+net-phy-fix-phy-unbind-crash.patch