]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00286017: net:fec: fix clock enable/disable usecount mismatch
authorFugang Duan <B38611@freescale.com>
Mon, 4 Nov 2013 03:13:12 +0000 (11:13 +0800)
committerFugang Duan <B38611@freescale.com>
Mon, 4 Nov 2013 04:36:07 +0000 (12:36 +0800)
Reproduce:
1. Boot up kernel with DHCP;
2. ifconfig eth0 down;
3. echo mem > /sys/power/state;

There have clock enable/disable usecount mismatch warning dump.

Fix this by checking device's netif_running state is up and then
enable/disable clock.

Signed-off-by: Fugang Duan <B38611@freescale.com>
drivers/net/ethernet/freescale/fec_main.c

index 3836f5dd45e2ef55bf76025184056cc810b2e75e..d48fb53eaebcfc672f06fe469b791aca5d244395 100644 (file)
@@ -2358,9 +2358,9 @@ fec_suspend(struct device *dev)
        if (netif_running(ndev)) {
                fec_stop(ndev);
                netif_device_detach(ndev);
+               fec_enet_clk_enable(ndev, false);
        }
 
-       fec_enet_clk_enable(ndev, false);
        if (fep->reg_phy)
                regulator_disable(fep->reg_phy);
 
@@ -2384,8 +2384,8 @@ fec_resume(struct device *dev)
                        return ret;
        }
 
-       fec_enet_clk_enable(ndev, true);
        if (netif_running(ndev)) {
+               fec_enet_clk_enable(ndev, true);
                fec_restart(ndev, fep->full_duplex);
                netif_device_attach(ndev);
        }