diff options
author | Roel Kluin <roel.kluin@gmail.com> | 2009-02-24 19:19:48 +0100 |
---|---|---|
committer | Jean Delvare <khali@linux-fr.org> | 2009-02-24 19:19:48 +0100 |
commit | a746b578d8406b2db0e9f0d040061bc1f78433cf (patch) | |
tree | ce79fc247342fa9fde8ad184a4ec39d70ce0012a /drivers/i2c/busses/i2c-pxa.c | |
parent | f29d2e0275a4f03ef2fd158e484508dcb0c64efb (diff) | |
download | kernel_goldelico_gta04-a746b578d8406b2db0e9f0d040061bc1f78433cf.zip kernel_goldelico_gta04-a746b578d8406b2db0e9f0d040061bc1f78433cf.tar.gz kernel_goldelico_gta04-a746b578d8406b2db0e9f0d040061bc1f78433cf.tar.bz2 |
i2c: Timeouts reach -1
With a postfix decrement these timeouts reach -1 rather than 0, but
after the loop it is tested whether they have become 0.
As pointed out by Jean Delvare, the condition we are waiting for should
also be tested before the timeout. With the current order, you could
exit with a timeout error while the job is actually done.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/i2c/busses/i2c-pxa.c')
-rw-r--r-- | drivers/i2c/busses/i2c-pxa.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index 6af6814..bdb1f751 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c @@ -644,7 +644,7 @@ static int i2c_pxa_do_pio_xfer(struct pxa_i2c *i2c, i2c_pxa_start_message(i2c); - while (timeout-- && i2c->msg_num > 0) { + while (i2c->msg_num > 0 && --timeout) { i2c_pxa_handler(0, i2c); udelay(10); } |