qlge: Fix schedule while atomic issue.
authorRon Mercer <ron.mercer@qlogic.com>
Fri, 9 Jan 2009 11:31:52 +0000 (11:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Jan 2009 08:07:35 +0000 (00:07 -0800)
There is no need to sleep while waiting for the hardware
semaphore to become available.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/qlge/qlge_main.c

index 9931cf7b6ad69c08afa651ca2c8759f9408959ba..543a4135ae04f4aee96d0cf7b599985248f45e2d 100644 (file)
@@ -126,12 +126,12 @@ static int ql_sem_trylock(struct ql_adapter *qdev, u32 sem_mask)
 
 int ql_sem_spinlock(struct ql_adapter *qdev, u32 sem_mask)
 {
-       unsigned int seconds = 3;
+       unsigned int wait_count = 30;
        do {
                if (!ql_sem_trylock(qdev, sem_mask))
                        return 0;
-               ssleep(1);
-       } while (--seconds);
+               udelay(100);
+       } while (--wait_count);
        return -ETIMEDOUT;
 }