linux/drivers/i2c
Julia Lawall 9cb2c2726e i2c-amd8111: Add proper error handling
The functions the functions amd_ec_wait_write and amd_ec_wait_read have an
unsigned return type, but return a negative constant to indicate an error
condition.

A sematic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@exists@
identifier f;
constant C;
@@

 unsigned f(...)
 { <+...
*  return -C;
 ...+> }
// </smpl>

Fixing amd_ec_wait_write and amd_ec_wait_read leads to the need to adjust
the return type of the functions amd_ec_write and amd_ec_read, which are
the only functions that call amd_ec_wait_write and amd_ec_wait_read.
amd_ec_write and amd_ec_read, in turn, are only called from within the
function amd8111_access, which already returns a signed typed value.  Each
of the calls to amd_ec_write and amd_ec_read are updated using the
following semantic patch:

// <smpl>
@@
@@

+ status = amd_ec_write
- amd_ec_write
  (...);
+ if (status) return status;

@@
@@

+ status = amd_ec_read
- amd_ec_read
  (...);
+ if (status) return status;
// </smpl>

The patch also adds the declaration of the status variable.

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
2010-10-24 18:16:58 +02:00
..
algos i2c: Change to new flag variable 2010-10-24 18:16:58 +02:00
busses i2c-amd8111: Add proper error handling 2010-10-24 18:16:58 +02:00
muxes i2c: Change to new flag variable 2010-10-24 18:16:58 +02:00
i2c-boardinfo.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
i2c-core.c i2c: Let i2c_parent_is_i2c_adapter return the parent adapter 2010-10-24 18:16:57 +02:00
i2c-core.h i2c: Use rwsem instead of mutex for board info 2009-06-19 16:58:20 +02:00
i2c-dev.c i2c: Let i2c_parent_is_i2c_adapter return the parent adapter 2010-10-24 18:16:57 +02:00
i2c-mux.c i2c: Multiplexed I2C bus core support 2010-08-11 18:21:02 +02:00
i2c-smbus.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
Kconfig i2c: Fix Kconfig dependencies 2010-10-24 18:16:57 +02:00
Makefile i2c: Change to new flag variable 2010-10-24 18:16:58 +02:00