]> git.karo-electronics.de Git - linux-beck.git/blobdiff - drivers/net/gianfar.c
gianfar: stop send queue before resetting gianfar
[linux-beck.git] / drivers / net / gianfar.c
index 6a38800be3f109fd10d6a472517902c765f64572..b2c49679bba78407fe51d58b57cc62344feb7b0d 100644 (file)
@@ -289,9 +289,9 @@ static int gfar_of_init(struct net_device *dev)
                id = of_get_property(phy, "reg", NULL);
 
                of_node_put(phy);
-               of_node_put(mdio);
 
                fsl_pq_mdio_bus_name(bus_name, mdio);
+               of_node_put(mdio);
                snprintf(priv->phy_bus_id, sizeof(priv->phy_bus_id), "%s:%02x",
                                bus_name, *id);
        }
@@ -1583,8 +1583,10 @@ static void gfar_reset_task(struct work_struct *work)
        struct net_device *dev = priv->ndev;
 
        if (dev->flags & IFF_UP) {
+               netif_stop_queue(dev);
                stop_gfar(dev);
                startup_gfar(dev);
+               netif_start_queue(dev);
        }
 
        netif_tx_schedule_all(dev);