Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
[sfrench/cifs-2.6.git] / drivers / net / phy / phy.c
index 4044bb1ada8655ebd3a7daa9af2395068efeb34d..c94a1fb3a4bee56bcb9bf9d8235b3453cfce7195 100644 (file)
@@ -16,7 +16,6 @@
  *
  */
 #include <linux/kernel.h>
-#include <linux/sched.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/unistd.h>
@@ -286,6 +285,7 @@ int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd)
 
        return 0;
 }
+EXPORT_SYMBOL(phy_ethtool_sset);
 
 int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd)
 {
@@ -302,7 +302,7 @@ int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd)
 
        return 0;
 }
-
+EXPORT_SYMBOL(phy_ethtool_gset);
 
 /* Note that this function is currently incompatible with the
  * PHYCONTROL layer.  It changes registers without regard to
@@ -587,8 +587,7 @@ int phy_stop_interrupts(struct phy_device *phydev)
         * Finish any pending work; we might have been scheduled
         * to be called from keventd ourselves, though.
         */
-       if (!current_is_keventd())
-               flush_scheduled_work();
+       run_scheduled_work(&phydev->phy_queue);
 
        free_irq(phydev->irq, phydev);