bcm63xx: update ethernet kernel panics fix
[openwrt/openwrt.git] / target / linux / bcm63xx / patches-5.10 / 404-NET-bcm63xx_enet-move-phy_-dis-connect-into-probe-re.patch
index 7db32c315f8af831c557e8f2b46057515052917b..44cbf75fe32baa093fb5a50498f07db005b08a39 100644 (file)
@@ -79,7 +79,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
        else
                bcm_enet_adjust_link(dev);
  
-@@ -1132,10 +1109,6 @@ out_freeirq_rx:
+@@ -1130,10 +1107,6 @@ out_freeirq_rx:
  out_freeirq:
        free_irq(dev->irq, dev);
  
@@ -90,7 +90,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
        return ret;
  }
  
-@@ -1228,10 +1201,6 @@ static int bcm_enet_stop(struct net_devi
+@@ -1226,10 +1199,6 @@ static int bcm_enet_stop(struct net_devi
        free_irq(priv->irq_rx, dev);
        free_irq(dev->irq, dev);
  
@@ -98,10 +98,10 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
 -      if (priv->has_phy)
 -              phy_disconnect(dev->phydev);
 -
-       return 0;
- }
+       /* reset BQL after forced tx reclaim to not kernel panic */
+       netdev_reset_queue(dev);
  
-@@ -1796,14 +1765,47 @@ static int bcm_enet_probe(struct platfor
+@@ -1797,14 +1766,47 @@ static int bcm_enet_probe(struct platfor
  
        /* do minimal hardware init to be able to probe mii bus */
        bcm_enet_hw_preinit(priv);
@@ -150,7 +150,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
                }
  
                bus = priv->mii_bus;
-@@ -1827,6 +1829,26 @@ static int bcm_enet_probe(struct platfor
+@@ -1828,6 +1830,26 @@ static int bcm_enet_probe(struct platfor
                        dev_err(&pdev->dev, "unable to register mdio bus\n");
                        goto out_free_mdio;
                }
@@ -177,7 +177,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
        } else {
  
                /* run platform code to initialize PHY device */
-@@ -1834,45 +1856,16 @@ static int bcm_enet_probe(struct platfor
+@@ -1835,45 +1857,16 @@ static int bcm_enet_probe(struct platfor
                    pd->mii_config(dev, 1, bcm_enet_mdio_read_mii,
                                   bcm_enet_mdio_write_mii)) {
                        dev_err(&pdev->dev, "unable to configure mdio bus\n");
@@ -227,7 +227,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
        if (priv->mii_bus)
                mdiobus_unregister(priv->mii_bus);
  
-@@ -1880,6 +1873,9 @@ out_free_mdio:
+@@ -1881,6 +1874,9 @@ out_free_mdio:
        if (priv->mii_bus)
                mdiobus_free(priv->mii_bus);
  
@@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
  out_uninit_hw:
        /* turn off mdc clock */
        enet_writel(priv, 0, ENET_MIISC_REG);
-@@ -1910,6 +1906,7 @@ static int bcm_enet_remove(struct platfo
+@@ -1911,6 +1907,7 @@ static int bcm_enet_remove(struct platfo
        enet_writel(priv, 0, ENET_MIISC_REG);
  
        if (priv->has_phy) {