This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / net / tokenring / ibmtr.c
index 10fa8e7..61f50e0 100644 (file)
@@ -848,6 +848,8 @@ static int tok_init_card(struct net_device *dev)
        struct tok_info *ti;
        short PIOaddr;
        unsigned long i;
+       wait_queue_t __wait;
+       init_waitqueue_entry(&__wait, current);
 
        PIOaddr = dev->base_addr;
        ti = (struct tok_info *) dev->priv;
@@ -860,13 +862,18 @@ static int tok_init_card(struct net_device *dev)
        current->state=TASK_UNINTERRUPTIBLE;
        schedule_timeout(TR_RST_TIME); /* wait 50ms */
 
+       add_wait_queue(&ti->wait_for_reset, &__wait);
+       set_current_state(TASK_UNINTERRUPTIBLE);
        outb(0, PIOaddr + ADAPTRESETREL);
 #ifdef ENABLE_PAGING
        if (ti->page_mask)
                writeb(SRPR_ENABLE_PAGING,ti->mmio+ACA_OFFSET+ACA_RW+SRPR_EVEN);
 #endif
        writeb(INT_ENABLE, ti->mmio + ACA_OFFSET + ACA_SET + ISRP_EVEN);
-       i = sleep_on_timeout(&ti->wait_for_reset, 4 * HZ);
+       #warning pci posting bug
+       i = schedule_timeout(4 * HZ);
+       current->state = TASK_RUNNING;
+       remove_wait_queue(&ti->wait_for_reset, &__wait);
        return i? 0 : -EAGAIN;
 }