OSDN Git Service

wireless, airo: waitbusy() won't delay
authorRoel Kluin <roel.kluin@gmail.com>
Tue, 13 May 2008 20:12:27 +0000 (22:12 +0200)
committerWilly Tarreau <w@1wt.eu>
Sun, 1 Jun 2008 18:23:58 +0000 (20:23 +0200)
[backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a]

There will be no delay even when COMMAND_BUSY (defined 0x8000) is set:
0x8000 & (delay < 10000) will evaluate to 0 - when delay is 0.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/net/wireless/airo.c

index 2862039..e24e13f 100644 (file)
@@ -2282,7 +2282,7 @@ EXPORT_SYMBOL(init_airo_card);
 
 static int waitbusy (struct airo_info *ai) {
        int delay = 0;
-       while ((IN4500 (ai, COMMAND) & COMMAND_BUSY) & (delay < 10000)) {
+       while ((IN4500 (ai, COMMAND) & COMMAND_BUSY) && (delay < 10000)) {
                udelay (10);
                if (++delay % 20)
                        OUT4500(ai, EVACK, EV_CLEARCOMMANDBUSY);