Skip to contentSkip to conversation

i2c: Handle i2c_add_adapter

PATCH New Greg KH 1 participant 1 message Jul 12, 2006 I2C subsystem host drivers

lore
Share & tools
lore

Greg KH

author
#0 lore raw

PATCH 8/13 i2c: Handle i2c_add_adapter

From: Mark M. Hoffman <mhoffman at lightlink.com>

Content-Disposition: inline; filename=i2c-algo-error-handling-fix.patch

It is possible for i2c_add_adapter() to fail. Several I2C algorithm drivers ignore that fact. This (compile-tested only) patch fixes them.

Signed-off-by Mark M. Hoffman <mhoffman at lightlink.com>
Signed-off-by Jean Delvare <khali at linux-fr.org>
Signed-off-by Greg Kroah-Hartman <gregkh at suse.de>
---
 drivers/i2c/algos/i2c-algo-bit.c    |    3 +--
 drivers/i2c/algos/i2c-algo-ite.c    |    4 +---
 drivers/i2c/algos/i2c-algo-pca.c    |    6 +++---
 drivers/i2c/algos/i2c-algo-pcf.c    |    8 +++++---
 drivers/i2c/algos/i2c-algo-sibyte.c |    4 +---
 5 files changed, 11 insertions(+), 14 deletions(-)
drivers/i2c/algos/i2c-algo-bit.c +1 -2
index df05df1..3d6fc82 100644
@@ -544,8 +544,7 @@ int i2c_bit_add_bus(struct i2c_adapter *
 	adap->timeout = 100;	/* default values, should	*/
 	adap->retries = 3;	/* be replaced by defines	*/
 
-	i2c_add_adapter(adap);
-	return 0;
+	return i2c_add_adapter(adap);
 }
 
 
drivers/i2c/algos/i2c-algo-ite.c +1 -3
index 2db7bfc..70d8eef 100644
@@ -742,10 +742,8 @@ int i2c_iic_add_bus(struct i2c_adapter *
 	adap->retries = 3;		/* be replaced by defines	*/
 	adap->flags = 0;
 
-	i2c_add_adapter(adap);
 	iic_init(iic_adap);
-
-	return 0;
+	return i2c_add_adapter(adap);
 }
 
 
drivers/i2c/algos/i2c-algo-pca.c +3 -3
index 82946ac..b88a6fc 100644
@@ -374,10 +374,10 @@ int i2c_pca_add_bus(struct i2c_adapter *
 	adap->timeout = 100;		/* default values, should	*/
 	adap->retries = 3;		/* be replaced by defines	*/
 
-	rval = pca_init(pca_adap);
+	if ((rval = pca_init(pca_adap)))
+		return rval;
 
-	if (!rval)
-		i2c_add_adapter(adap);
+	rval = i2c_add_adapter(adap);
 
 	return rval;
 }
drivers/i2c/algos/i2c-algo-pcf.c +5 -3
index 6e498df..5b24930 100644
@@ -479,9 +479,11 @@ int i2c_pcf_add_bus(struct i2c_adapter *
 	adap->timeout = 100;		/* default values, should	*/
 	adap->retries = 3;		/* be replaced by defines	*/
 
-	rval = pcf_init_8584(pcf_adap);
-	if (!rval)
-		i2c_add_adapter(adap);
+	if ((rval = pcf_init_8584(pcf_adap)))
+		return rval;
+
+	rval = i2c_add_adapter(adap);
+
 	return rval;
 }
 
drivers/i2c/algos/i2c-algo-sibyte.c +1 -3
index 3df3f09..32d41c6 100644
@@ -173,9 +173,7 @@ int i2c_sibyte_add_bus(struct i2c_adapte
 		printk("\n");
 	}
 
-	i2c_add_adapter(i2c_adap);
-
-	return 0;
+	return i2c_add_adapter(i2c_adap);
 }
 
 
Signature · 1 line
1.4.1