schedule_timeout(data * HZ);
msleep_interruptible(data * 1000);
static int pcnet32_phys_id(struct net_device *dev, u32 data){    struct pcnet32_private *lp = dev->priv;    struct pcnet32_access *a = &lp->a;    ulong ioaddr = dev->base_addr;    unsigned long flags;    int i, regs[4];    if (!lp->blink_timer.function) {	init_timer(&lp->blink_timer);	lp->blink_timer.function = (void *) pcnet32_led_blink_callback;	lp->blink_timer.data = (unsigned long) dev;    }    /* Save the current value of the bcrs */    spin_lock_irqsave(&lp->lock, flags);    for (i=4; i<8; i++) {	regs[i-4] = a->read_bcr(ioaddr, i);    }    spin_unlock_irqrestore(&lp->lock, flags);    mod_timer(&lp->blink_timer, jiffies);    set_current_state(TASK_INTERRUPTIBLE);    if ((!data) || (data > (u32)(MAX_SCHEDULE_TIMEOUT / HZ)))    data = (u32)(MAX_SCHEDULE_TIMEOUT / HZ);    schedule_timeout(data * HZ);    del_timer_sync(&lp->blink_timer);    /* Restore the original value of the bcrs */    spin_lock_irqsave(&lp->lock, flags);    for (i=4; i<8; i++) {	a->write_bcr(ioaddr, i, regs[i-4]);    }    spin_unlock_irqrestore(&lp->lock, flags);    return 0;}