set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(1); 
schedule_timeout_uninterruptible(1); 
static void ns83820_run_bist(struct net_device *ndev, const char *name, u32 enable, u32 done, u32 fail){	struct ns83820 *dev = PRIV(ndev);	int timed_out = 0;	long start;	u32 status;	int loops = 0;	dprintk("%s: start %s\n", ndev->name, name);	start = jiffies;	writel(enable, dev->base + PTSCR);	for (;;) {		loops++;		status = readl(dev->base + PTSCR);		if (!(status & enable))			break;		if (status & done)			break;		if (status & fail)			break;		if ((jiffies - start) >= HZ) {			timed_out = 1;			break;		}		set_current_state(TASK_UNINTERRUPTIBLE);		schedule_timeout(1);	}	if (status & fail)		printk(KERN_INFO "%s: %s failed! (0x%08x & 0x%08x)\n",			ndev->name, name, status, fail);	else if (timed_out)		printk(KERN_INFO "%s: run_bist %s timed out! (%08x)\n",			ndev->name, name, status);	dprintk("%s: done %s in %d loops\n", ndev->name, name, loops);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/3173c8907ffb2c64456142da3df2bd0500bd59e0/ns83820.c/clean/drivers/net/ns83820.c