Subject: [PATCH] postfix decrement error in smc911x_reset(); drivers/net/smc911x.c

From: Roel Kluin <[email-masked]>
Date: Mon, 05 Nov 2007 00:45:53 +0100

If timeout causes the loop to end, a postfix decrement causes its value to 
become 4294967295 (unsigned int), not 0.

Signed-off-by: Roel Kluin <[email-masked]>
---
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index dd18af0..41f3c8f 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -243,7 +243,7 @@ static void smc911x_reset(struct net_device *dev)
 		do {
 			udelay(10);
 			reg = SMC_GET_PMT_CTRL() & PMT_CTRL_READY_;
-		} while ( timeout-- && !reg);
+		} while ( --timeout && !reg);
 		if (timeout == 0) {
 			PRINTK("%s: smc911x_reset timeout waiting for PM restore\n", dev->name);
 			return;