2007-11-05 00:43:16

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] postfix decrement error in ipw2100_start_adapter(); drivers/net/wireless/ipw2100.c

If i reaches zero, the loop ends, but the postfix decrement subtracts it to -1.
Testing for 'i == 0', later in the function, will not fulfill its purpose.

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index a6c7904..84870f4 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -1267,7 +1267,7 @@ static int ipw2100_start_adapter(struct ipw2100_priv *priv)
IPW2100_INTA_FATAL_ERROR |
IPW2100_INTA_PARITY_ERROR);
}
- } while (i--);
+ } while (--i);

/* Clear out any pending INTAs since we aren't supposed to have
* interrupts enabled at this point... */


2007-11-05 22:55:08

by Roel Kluin

[permalink] [raw]
Subject: Re: [PATCH] postfix decrement error in ipw2100_start_adapter(); drivers/net/wireless/ipw2100.c

It appears there was another. The patch below includes both fixes.
--
If i reaches zero, the loop ends, but the postfix decrement subtracts it to -1.
Testing for 'i == 0', later in the function, will not fulfill its purpose.

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index a6c7904..14632d8 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -1267,7 +1267,7 @@ static int ipw2100_start_adapter(struct ipw2100_priv *priv)
IPW2100_INTA_FATAL_ERROR |
IPW2100_INTA_PARITY_ERROR);
}
- } while (i--);
+ } while (--i);

/* Clear out any pending INTAs since we aren't supposed to have
* interrupts enabled at this point... */
@@ -1339,7 +1339,7 @@ static int ipw2100_power_cycle_adapter(struct ipw2100_priv *priv)

if (reg & IPW_AUX_HOST_RESET_REG_MASTER_DISABLED)
break;
- } while (i--);
+ } while (--i);

priv->status &= ~STATUS_RESET_PENDING;



2007-11-05 02:57:24

by Zhu Yi

[permalink] [raw]
Subject: Re: [PATCH] postfix decrement error in ipw2100_start_adapter(); drivers/net/wireless/ipw2100.c


On Mon, 2007-11-05 at 01:43 +0100, Roel Kluin wrote:
> If i reaches zero, the loop ends, but the postfix decrement subtracts
> it to -1.
> Testing for 'i == 0', later in the function, will not fulfill its
> purpose.
>
> Signed-off-by: Roel Kluin <[email protected]>

Acked-by: Zhu Yi <[email protected]>

Thanks,
-yi