schedule(); 
yield(); 
static void smc_phy_powerdown(struct net_device *dev){	struct smc_local *lp = netdev_priv(dev);	unsigned int bmcr;	int phy = lp->mii.phy_id;	if (lp->phy_type == 0)		return;	/* We need to ensure that no calls to smc_phy_configure are	   pending.	   flush_scheduled_work() cannot be called because we are	   running with the netlink semaphore held (from	   devinet_ioctl()) and the pending work queue contains	   linkwatch_event() (scheduled by netif_carrier_off()	   above). linkwatch_event() also wants the netlink semaphore.	*/	while(lp->work_pending)		schedule();	bmcr = smc_phy_read(dev, phy, MII_BMCR);	smc_phy_write(dev, phy, MII_BMCR, bmcr | BMCR_PDOWN);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/be83668a253149d99085ca4afe6cd8dc8a43fcd0/smc91x.c/buggy/drivers/net/smc91x.c