[i2c] [patch 2.6.24-rc1-git] i2c-algo-bit, don't yield()

David Brownell david-b at pacbell.net
Sun Nov 4 20:38:35 CET 2007


Don't use yield().  It can have nasty scheduling properties; and in any
case this code could be interrupted or otherwise preempted at any time.

This address retry mechanism should be removed from the I2C stack at some
point.  Meanwhile, there's no point in having its primary implementation
misbehave.

Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>
---
 drivers/i2c/algos/i2c-algo-bit.c |    1 -
 1 files changed, 1 deletion(-)

--- a.orig/drivers/i2c/algos/i2c-algo-bit.c	2007-09-05 09:08:53.000000000 -0700
+++ a/drivers/i2c/algos/i2c-algo-bit.c	2007-09-05 12:01:35.000000000 -0700
@@ -322,7 +322,6 @@ static int try_address(struct i2c_adapte
 		bit_dbg(3, &i2c_adap->dev, "emitting stop condition\n");
 		i2c_stop(adap);
 		udelay(adap->udelay);
-		yield();
 		bit_dbg(3, &i2c_adap->dev, "emitting start condition\n");
 		i2c_start(adap);
 	}



More information about the i2c mailing list