]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/benet/be_cmds.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[net-next-2.6.git] / drivers / net / benet / be_cmds.c
index b9ad799c719f1d5b541a33d93d095318e6c362fc..ee1ad9693c8f064b89a133b6d6f0eb252a80a0dd 100644 (file)
@@ -186,7 +186,7 @@ static int be_mcc_notify_wait(struct be_adapter *adapter)
 
 static int be_mbox_db_ready_wait(struct be_adapter *adapter, void __iomem *db)
 {
-       int cnt = 0, wait = 5;
+       int msecs = 0;
        u32 ready;
 
        do {
@@ -201,15 +201,14 @@ static int be_mbox_db_ready_wait(struct be_adapter *adapter, void __iomem *db)
                if (ready)
                        break;
 
-               if (cnt > 4000000) {
+               if (msecs > 4000) {
                        dev_err(&adapter->pdev->dev, "mbox poll timed out\n");
                        return -1;
                }
 
-               if (cnt > 50)
-                       wait = 200;
-               cnt += wait;
-               udelay(wait);
+               set_current_state(TASK_INTERRUPTIBLE);
+               schedule_timeout(msecs_to_jiffies(1));
+               msecs++;
        } while (true);
 
        return 0;