i2c: Handle i2c_add_adapter
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -173,9 +173,7 @@ int i2c_sibyte_add_bus(struct i2c_adapteprintk ("\n" ); } -i2c_add_adapter (i2c_adap); - -return 0 ; +return i2c_add_adapter (i2c_adap); }
Signature · 1 line
1.4.1