]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 May 2020 11:05:34 +0000 (13:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 May 2020 11:05:34 +0000 (13:05 +0200)
added patches:
net-dsa-move-dsa-slave-destroy-code-to-slave.c.patch
net-dsa-slave-fix-fixed-link-phydev-leaks.patch
net-ethernet-bcmgenet-fix-fixed-link-phydev-leaks.patch
net-ethernet-bcmsysport-fix-fixed-link-phydev-leaks.patch
net-ethernet-fec-fix-fixed-link-phydev-leaks.patch
net-ethernet-ti-davinci_emac-fix-fixed-link-phydev-and-of-node-leaks.patch
of_mdio-add-helper-to-deregister-fixed-link-phys.patch

queue-4.4/net-dsa-move-dsa-slave-destroy-code-to-slave.c.patch [new file with mode: 0644]
queue-4.4/net-dsa-slave-fix-fixed-link-phydev-leaks.patch [new file with mode: 0644]
queue-4.4/net-ethernet-bcmgenet-fix-fixed-link-phydev-leaks.patch [new file with mode: 0644]
queue-4.4/net-ethernet-bcmsysport-fix-fixed-link-phydev-leaks.patch [new file with mode: 0644]
queue-4.4/net-ethernet-fec-fix-fixed-link-phydev-leaks.patch [new file with mode: 0644]
queue-4.4/net-ethernet-ti-davinci_emac-fix-fixed-link-phydev-and-of-node-leaks.patch [new file with mode: 0644]
queue-4.4/of_mdio-add-helper-to-deregister-fixed-link-phys.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/net-dsa-move-dsa-slave-destroy-code-to-slave.c.patch b/queue-4.4/net-dsa-move-dsa-slave-destroy-code-to-slave.c.patch
new file mode 100644 (file)
index 0000000..183c2be
--- /dev/null
@@ -0,0 +1,67 @@
+From cda5c15b23fb9d683a491e8bd137d11d8552ac02 Mon Sep 17 00:00:00 2001
+From: Neil Armstrong <narmstrong@baylibre.com>
+Date: Mon, 7 Dec 2015 13:57:35 +0100
+Subject: net: dsa: move dsa slave destroy code to slave.c
+
+From: Neil Armstrong <narmstrong@baylibre.com>
+
+commit cda5c15b23fb9d683a491e8bd137d11d8552ac02 upstream.
+
+Move dsa slave dedicated code from dsa_switch_destroy to a new
+dsa_slave_destroy function in slave.c.
+Add the netif_carrier_off and phy_disconnect calls in order to
+correctly cleanup the netdev state and PHY state machine.
+
+Signed-off-by: Frode Isaksen <fisaksen@baylibre.com>
+Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/dsa/dsa.c      |    3 +--
+ net/dsa/dsa_priv.h |    1 +
+ net/dsa/slave.c    |   11 +++++++++++
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+
+--- a/net/dsa/dsa.c
++++ b/net/dsa/dsa.c
+@@ -454,8 +454,7 @@ static void dsa_switch_destroy(struct ds
+               if (!ds->ports[port])
+                       continue;
+-              unregister_netdev(ds->ports[port]);
+-              free_netdev(ds->ports[port]);
++              dsa_slave_destroy(ds->ports[port]);
+       }
+       mdiobus_unregister(ds->slave_mii_bus);
+--- a/net/dsa/dsa_priv.h
++++ b/net/dsa/dsa_priv.h
+@@ -61,6 +61,7 @@ extern const struct dsa_device_ops notag
+ void dsa_slave_mii_bus_init(struct dsa_switch *ds);
+ int dsa_slave_create(struct dsa_switch *ds, struct device *parent,
+                    int port, char *name);
++void dsa_slave_destroy(struct net_device *slave_dev);
+ int dsa_slave_suspend(struct net_device *slave_dev);
+ int dsa_slave_resume(struct net_device *slave_dev);
+ int dsa_slave_netdevice_event(struct notifier_block *unused,
+--- a/net/dsa/slave.c
++++ b/net/dsa/slave.c
+@@ -1225,6 +1225,17 @@ int dsa_slave_create(struct dsa_switch *
+       return 0;
+ }
++void dsa_slave_destroy(struct net_device *slave_dev)
++{
++      struct dsa_slave_priv *p = netdev_priv(slave_dev);
++
++      netif_carrier_off(slave_dev);
++      if (p->phy)
++              phy_disconnect(p->phy);
++      unregister_netdev(slave_dev);
++      free_netdev(slave_dev);
++}
++
+ static bool dsa_slave_dev_check(struct net_device *dev)
+ {
+       return dev->netdev_ops == &dsa_slave_netdev_ops;
diff --git a/queue-4.4/net-dsa-slave-fix-fixed-link-phydev-leaks.patch b/queue-4.4/net-dsa-slave-fix-fixed-link-phydev-leaks.patch
new file mode 100644 (file)
index 0000000..30d39b0
--- /dev/null
@@ -0,0 +1,32 @@
+From 881eadabe71fa78c081eda3cd5701768f3778a21 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:25:09 +0100
+Subject: net: dsa: slave: fix fixed-link phydev leaks
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 881eadabe71fa78c081eda3cd5701768f3778a21 upstream.
+
+Make sure to deregister and free any fixed-link PHY registered using
+of_phy_register_fixed_link() on slave-setup errors and on slave destroy.
+
+Fixes: 0d8bcdd383b8 ("net: dsa: allow for more complex PHY setups")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/dsa/slave.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/net/dsa/slave.c
++++ b/net/dsa/slave.c
+@@ -1083,6 +1083,8 @@ static int dsa_slave_phy_setup(struct ds
+               ret = dsa_slave_phy_connect(p, slave_dev, p->port);
+               if (ret) {
+                       netdev_err(slave_dev, "failed to connect to port %d: %d\n", p->port, ret);
++                      if (phy_is_fixed)
++                              of_phy_deregister_fixed_link(port_dn);
+                       return ret;
+               }
+       } else {
diff --git a/queue-4.4/net-ethernet-bcmgenet-fix-fixed-link-phydev-leaks.patch b/queue-4.4/net-ethernet-bcmgenet-fix-fixed-link-phydev-leaks.patch
new file mode 100644 (file)
index 0000000..d6a62ca
--- /dev/null
@@ -0,0 +1,54 @@
+From 140ca9d3471c424ab4c4036ab8d8d995f24a9c5b Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:24:59 +0100
+Subject: net: ethernet: bcmgenet: fix fixed-link phydev leaks
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 140ca9d3471c424ab4c4036ab8d8d995f24a9c5b upstream.
+
+Make sure to deregister and free any fixed-link PHY registered using
+of_phy_register_fixed_link() on probe errors and on driver unbind.
+
+Note that we're still leaking any fixed-link PHY registered in the
+non-OF probe path.
+
+Fixes: 9abf0c2b717a ("net: bcmgenet: use the new fixed PHY helpers")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/genet/bcmmii.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
++++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
+@@ -629,6 +629,7 @@ static int bcmgenet_mii_bus_init(struct
+ int bcmgenet_mii_init(struct net_device *dev)
+ {
+       struct bcmgenet_priv *priv = netdev_priv(dev);
++      struct device_node *dn = priv->pdev->dev.of_node;
+       int ret;
+       ret = bcmgenet_mii_alloc(priv);
+@@ -642,6 +643,8 @@ int bcmgenet_mii_init(struct net_device
+       return 0;
+ out:
++      if (of_phy_is_fixed_link(dn))
++              of_phy_deregister_fixed_link(dn);
+       of_node_put(priv->phy_dn);
+       mdiobus_unregister(priv->mii_bus);
+       kfree(priv->mii_bus->irq);
+@@ -652,7 +655,10 @@ out:
+ void bcmgenet_mii_exit(struct net_device *dev)
+ {
+       struct bcmgenet_priv *priv = netdev_priv(dev);
++      struct device_node *dn = priv->pdev->dev.of_node;
++      if (of_phy_is_fixed_link(dn))
++              of_phy_deregister_fixed_link(dn);
+       of_node_put(priv->phy_dn);
+       mdiobus_unregister(priv->mii_bus);
+       kfree(priv->mii_bus->irq);
diff --git a/queue-4.4/net-ethernet-bcmsysport-fix-fixed-link-phydev-leaks.patch b/queue-4.4/net-ethernet-bcmsysport-fix-fixed-link-phydev-leaks.patch
new file mode 100644 (file)
index 0000000..2113973
--- /dev/null
@@ -0,0 +1,85 @@
+From 39f8b0d426e0b3e04ddf4c6ef0ae28873c0f8c0f Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:24:58 +0100
+Subject: net: ethernet: bcmsysport: fix fixed-link phydev leaks
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 39f8b0d426e0b3e04ddf4c6ef0ae28873c0f8c0f upstream.
+
+Make sure to deregister and free any fixed-link PHY registered using
+of_phy_register_fixed_link() on probe errors and on driver unbind.
+
+Fixes: 186534a3f832 ("net: systemport: use the new fixed PHY helpers")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bcmsysport.c |   17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bcmsysport.c
++++ b/drivers/net/ethernet/broadcom/bcmsysport.c
+@@ -1781,13 +1781,13 @@ static int bcm_sysport_probe(struct plat
+       if (priv->irq0 <= 0 || priv->irq1 <= 0) {
+               dev_err(&pdev->dev, "invalid interrupts\n");
+               ret = -EINVAL;
+-              goto err;
++              goto err_free_netdev;
+       }
+       priv->base = devm_ioremap_resource(&pdev->dev, r);
+       if (IS_ERR(priv->base)) {
+               ret = PTR_ERR(priv->base);
+-              goto err;
++              goto err_free_netdev;
+       }
+       priv->netdev = dev;
+@@ -1805,7 +1805,7 @@ static int bcm_sysport_probe(struct plat
+               ret = of_phy_register_fixed_link(dn);
+               if (ret) {
+                       dev_err(&pdev->dev, "failed to register fixed PHY\n");
+-                      goto err;
++                      goto err_free_netdev;
+               }
+               priv->phy_dn = dn;
+@@ -1847,7 +1847,7 @@ static int bcm_sysport_probe(struct plat
+       ret = register_netdev(dev);
+       if (ret) {
+               dev_err(&pdev->dev, "failed to register net_device\n");
+-              goto err;
++              goto err_deregister_fixed_link;
+       }
+       priv->rev = topctrl_readl(priv, REV_CNTL) & REV_MASK;
+@@ -1858,7 +1858,11 @@ static int bcm_sysport_probe(struct plat
+                priv->base, priv->irq0, priv->irq1, txq, rxq);
+       return 0;
+-err:
++
++err_deregister_fixed_link:
++      if (of_phy_is_fixed_link(dn))
++              of_phy_deregister_fixed_link(dn);
++err_free_netdev:
+       free_netdev(dev);
+       return ret;
+ }
+@@ -1866,11 +1870,14 @@ err:
+ static int bcm_sysport_remove(struct platform_device *pdev)
+ {
+       struct net_device *dev = dev_get_drvdata(&pdev->dev);
++      struct device_node *dn = pdev->dev.of_node;
+       /* Not much to do, ndo_close has been called
+        * and we use managed allocations
+        */
+       unregister_netdev(dev);
++      if (of_phy_is_fixed_link(dn))
++              of_phy_deregister_fixed_link(dn);
+       free_netdev(dev);
+       dev_set_drvdata(&pdev->dev, NULL);
diff --git a/queue-4.4/net-ethernet-fec-fix-fixed-link-phydev-leaks.patch b/queue-4.4/net-ethernet-fec-fix-fixed-link-phydev-leaks.patch
new file mode 100644 (file)
index 0000000..92affa5
--- /dev/null
@@ -0,0 +1,50 @@
+From 82005b1c19b11998ea98532d742c021a19f948d7 Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:25:00 +0100
+Subject: net: ethernet: fec: fix fixed-link phydev leaks
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 82005b1c19b11998ea98532d742c021a19f948d7 upstream.
+
+Make sure to deregister and free any fixed-link PHY registered using
+of_phy_register_fixed_link() on probe errors and on driver unbind.
+
+Fixes: 407066f8f371 ("net: fec: Support phys probed from devicetree and
+fixed-link")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/freescale/fec_main.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/net/ethernet/freescale/fec_main.c
++++ b/drivers/net/ethernet/freescale/fec_main.c
+@@ -3519,6 +3519,8 @@ failed_regulator:
+ failed_clk_ipg:
+       fec_enet_clk_enable(ndev, false);
+ failed_clk:
++      if (of_phy_is_fixed_link(np))
++              of_phy_deregister_fixed_link(np);
+ failed_phy:
+       of_node_put(phy_node);
+ failed_ioremap:
+@@ -3532,6 +3534,7 @@ fec_drv_remove(struct platform_device *p
+ {
+       struct net_device *ndev = platform_get_drvdata(pdev);
+       struct fec_enet_private *fep = netdev_priv(ndev);
++      struct device_node *np = pdev->dev.of_node;
+       cancel_work_sync(&fep->tx_timeout_work);
+       fec_ptp_stop(pdev);
+@@ -3541,6 +3544,8 @@ fec_drv_remove(struct platform_device *p
+               regulator_disable(fep->reg_phy);
+       pm_runtime_put(&pdev->dev);
+       pm_runtime_disable(&pdev->dev);
++      if (of_phy_is_fixed_link(np))
++              of_phy_deregister_fixed_link(np);
+       of_node_put(fep->phy_node);
+       free_netdev(ndev);
diff --git a/queue-4.4/net-ethernet-ti-davinci_emac-fix-fixed-link-phydev-and-of-node-leaks.patch b/queue-4.4/net-ethernet-ti-davinci_emac-fix-fixed-link-phydev-and-of-node-leaks.patch
new file mode 100644 (file)
index 0000000..0cf8713
--- /dev/null
@@ -0,0 +1,71 @@
+From 14cab6f6510c498c2fd55d4fd6063a91b477d2ff Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:25:08 +0100
+Subject: net: ethernet: ti: davinci_emac: fix fixed-link phydev and of-node leaks
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 14cab6f6510c498c2fd55d4fd6063a91b477d2ff upstream.
+
+Make sure to deregister and free any fixed-link PHY registered using
+of_phy_register_fixed_link() on probe errors and on driver unbind.
+
+Also remember to put the of-node reference on probe errors.
+
+Fixes: 1bb6aa56bb38 ("net: davinci_emac: Add support for fixed-link
+PHY")
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/ti/davinci_emac.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/ethernet/ti/davinci_emac.c
++++ b/drivers/net/ethernet/ti/davinci_emac.c
+@@ -1909,6 +1909,7 @@ static int davinci_emac_try_get_mac(stru
+  */
+ static int davinci_emac_probe(struct platform_device *pdev)
+ {
++      struct device_node *np = pdev->dev.of_node;
+       int rc = 0;
+       struct resource *res, *res_ctrl;
+       struct net_device *ndev;
+@@ -1947,7 +1948,7 @@ static int davinci_emac_probe(struct pla
+       if (!pdata) {
+               dev_err(&pdev->dev, "no platform data\n");
+               rc = -ENODEV;
+-              goto no_pdata;
++              goto err_free_netdev;
+       }
+       /* MAC addr and PHY mask , RMII enable info from platform_data */
+@@ -2083,6 +2084,10 @@ no_cpdma_chan:
+               cpdma_chan_destroy(priv->rxchan);
+       cpdma_ctlr_destroy(priv->dma);
+ no_pdata:
++      if (of_phy_is_fixed_link(np))
++              of_phy_deregister_fixed_link(np);
++      of_node_put(priv->phy_node);
++err_free_netdev:
+       free_netdev(ndev);
+       return rc;
+ }
+@@ -2098,6 +2103,7 @@ static int davinci_emac_remove(struct pl
+ {
+       struct net_device *ndev = platform_get_drvdata(pdev);
+       struct emac_priv *priv = netdev_priv(ndev);
++      struct device_node *np = pdev->dev.of_node;
+       dev_notice(&ndev->dev, "DaVinci EMAC: davinci_emac_remove()\n");
+@@ -2109,6 +2115,8 @@ static int davinci_emac_remove(struct pl
+       unregister_netdev(ndev);
+       of_node_put(priv->phy_node);
++      if (of_phy_is_fixed_link(np))
++              of_phy_deregister_fixed_link(np);
+       free_netdev(ndev);
+       return 0;
diff --git a/queue-4.4/of_mdio-add-helper-to-deregister-fixed-link-phys.patch b/queue-4.4/of_mdio-add-helper-to-deregister-fixed-link-phys.patch
new file mode 100644 (file)
index 0000000..9e90f96
--- /dev/null
@@ -0,0 +1,66 @@
+From 3f65047c853a2a5abcd8ac1984af3452b5df4ada Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Mon, 28 Nov 2016 19:24:55 +0100
+Subject: of_mdio: add helper to deregister fixed-link PHYs
+
+From: Johan Hovold <johan@kernel.org>
+
+commit 3f65047c853a2a5abcd8ac1984af3452b5df4ada upstream.
+
+Add helper to deregister fixed-link PHYs registered using
+of_phy_register_fixed_link().
+
+Convert the two drivers that care to deregister their fixed-link PHYs to
+use the new helper, but note that most drivers currently fail to do so.
+
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+[only take helper function for 4.4.y - gregkh]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/of/of_mdio.c    |   15 +++++++++++++++
+ include/linux/of_mdio.h |    4 ++++
+ 2 files changed, 19 insertions(+)
+
+--- a/drivers/of/of_mdio.c
++++ b/drivers/of/of_mdio.c
+@@ -367,4 +367,19 @@ int of_phy_register_fixed_link(struct de
+       return -ENODEV;
+ }
+ EXPORT_SYMBOL(of_phy_register_fixed_link);
++
++void of_phy_deregister_fixed_link(struct device_node *np)
++{
++      struct phy_device *phydev;
++
++      phydev = of_phy_find_device(np);
++      if (!phydev)
++              return;
++
++      fixed_phy_unregister(phydev);
++
++      put_device(&phydev->mdio.dev);  /* of_phy_find_device() */
++      phy_device_free(phydev);        /* fixed_phy_register() */
++}
++EXPORT_SYMBOL(of_phy_deregister_fixed_link);
+ #endif
+--- a/include/linux/of_mdio.h
++++ b/include/linux/of_mdio.h
+@@ -71,12 +71,16 @@ static inline int of_mdio_parse_addr(str
+ #if defined(CONFIG_OF) && defined(CONFIG_FIXED_PHY)
+ extern int of_phy_register_fixed_link(struct device_node *np);
++extern void of_phy_deregister_fixed_link(struct device_node *np);
+ extern bool of_phy_is_fixed_link(struct device_node *np);
+ #else
+ static inline int of_phy_register_fixed_link(struct device_node *np)
+ {
+       return -ENOSYS;
+ }
++static inline void of_phy_deregister_fixed_link(struct device_node *np)
++{
++}
+ static inline bool of_phy_is_fixed_link(struct device_node *np)
+ {
+       return false;
index 0de5f99f6fe5a4193e4f05e66652a4111016af01..2f3cd51795f529389b943b524e5ce2e4ffdafcfb 100644 (file)
@@ -152,10 +152,6 @@ nfc-nci-memory-leak-in-nci_core_conn_create.patch
 net-phy-avoid-polling-phy-with-phy_ignore_interrupts.patch
 net-phy-fix-phy_mac_interrupt.patch
 net-phy-bcm7xxx-fix-shadow-mode-2-disabling.patch
-net-ethernet-fs_enet-fix-fixed-link-phydev-leaks.patch
-net-ethernet-gianfar-fix-fixed-link-phydev-leaks.patch
-net-ethernet-marvell-mvneta-fix-fixed-link-phydev-leaks.patch
-net-ethernet-ucc_geth-fix-fixed-link-phydev-leaks.patch
 of_mdio-fix-node-leak-in-of_phy_register_fixed_link-error-path.patch
 phy-micrel-fix-finding-phy-properties-in-mac-node-for-ksz9031.patch
 phy-micrel-disable-auto-negotiation-on-startup.patch
@@ -230,3 +226,14 @@ sched-fair-fix-calc_cfs_shares-fixed-point-arithmetics-width-confusion.patch
 net_sched-flower-avoid-dissection-of-unmasked-keys.patch
 pkt_sched-fq-use-proper-locking-in-fq_dump_stats.patch
 sched-preempt-fix-preempt_count-manipulations.patch
+of_mdio-add-helper-to-deregister-fixed-link-phys.patch
+net-ethernet-fs_enet-fix-fixed-link-phydev-leaks.patch
+net-ethernet-gianfar-fix-fixed-link-phydev-leaks.patch
+net-ethernet-marvell-mvneta-fix-fixed-link-phydev-leaks.patch
+net-ethernet-ucc_geth-fix-fixed-link-phydev-leaks.patch
+net-ethernet-bcmsysport-fix-fixed-link-phydev-leaks.patch
+net-ethernet-bcmgenet-fix-fixed-link-phydev-leaks.patch
+net-ethernet-fec-fix-fixed-link-phydev-leaks.patch
+net-ethernet-ti-davinci_emac-fix-fixed-link-phydev-and-of-node-leaks.patch
+net-dsa-move-dsa-slave-destroy-code-to-slave.c.patch
+net-dsa-slave-fix-fixed-link-phydev-leaks.patch