linux/drivers/i2c/busses
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
..
i2c-acorn.c [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h 2009-03-25 10:21:35 +00:00
i2c-ali15x3.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-ali1535.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-ali1563.c i2c: Make PCI device ids constant 2010-03-02 12:23:37 +01:00
i2c-amd756-s4882.c i2c: Use snprintf to set adapter names 2009-01-07 14:29:18 +01:00
i2c-amd756.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-amd8111.c i2c-amd8111: Add proper error handling 2010-10-24 18:16:58 +02:00
i2c-at91.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-au1550.c i2c: Use resource_size macro 2009-06-16 22:42:16 +01:00
i2c-bfin-twi.c i2c-bfin-twi: return completion in interrupt for smbus quick transfers 2010-05-20 00:18:58 +01:00
i2c-cpm.c of/i2c: Fix module load order issue caused by of_i2c.c 2010-09-30 14:14:23 +02:00
i2c-davinci.c i2c-davinci: Fix TX setup for more SoCs 2010-10-18 01:25:33 +01:00
i2c-designware.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-elektor.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-gpio.c i2c-gpio: Move initialization code to subsys_initcall() 2010-05-21 18:40:58 +02:00
i2c-highlander.c i2c-highlander: remover superflous variable 2010-05-20 00:19:01 +01:00
i2c-hydra.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-i801.c hwmon: Fix autoloading of fschmd on recent Fujitsu machines 2010-07-09 16:22:51 +02:00
i2c-ibm_iic.c i2c: Remove unneeded inclusions of <linux/i2c-id.h> 2010-10-24 18:16:58 +02:00
i2c-ibm_iic.h i2c-ibm_iic: Whitespace cleanup 2008-01-27 18:14:45 +01:00
i2c-imx.c i2c-imx: do not allow interruptions when waiting for I2C to complete 2010-10-18 01:29:04 +01:00
i2c-iop3xx.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-iop3xx.h
i2c-isch.c i2c: convert i2c-isch to platform_device 2010-03-07 22:17:36 +01:00
i2c-ixp2000.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-mpc.c of/i2c: Fix module load order issue caused by of_i2c.c 2010-09-30 14:14:23 +02:00
i2c-mv64xxx.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-nforce2-s4985.c i2c: Fix oops on bus multiplexer driver loading 2008-08-10 22:56:15 +02:00
i2c-nforce2.c i2c-nforce2: Remove redundant error messages on ACPI conflict 2010-05-21 18:41:01 +02:00
i2c-nomadik.c i2c-nomadik: fix operator precedence warning 2010-05-20 00:19:00 +01:00
i2c-nuc900.c i2c: Remove unneeded inclusions of <linux/i2c-id.h> 2010-10-24 18:16:58 +02:00
i2c-ocores.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-octeon.c i2c-octeon: Return -ETIMEDOUT in octeon_i2c_wait() on timeout 2010-09-27 23:21:16 +01:00
i2c-omap.c i2c-omap: Make sure i2c bus is free before setting it to idle 2010-09-22 01:06:58 +01:00
i2c-parport-light.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-parport.c i2c-parport: Make template structure const 2010-05-21 18:40:57 +02:00
i2c-parport.h i2c-parport: Add SMBus alert support 2010-03-02 12:23:44 +01:00
i2c-pasemi.c i2c/i2c-pasemi.c: Fix unsigned return type 2010-10-13 16:19:04 +11:00
i2c-pca-isa.c i2c-pca: Fix waitforcompletion() return value 2010-09-30 14:14:22 +02:00
i2c-pca-platform.c i2c-pca-platform: Change device name of request_irq 2010-10-24 18:16:57 +02:00
i2c-piix4.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-pmcmsp.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-pnx.c i2c-pnx: Add stop conditions for end of transfer 2010-04-20 01:16:57 +01:00
i2c-powermac.c i2c-powermac: Be less verbose in the absence of real errors. 2010-03-13 20:56:52 +01:00
i2c-pxa.c i2c: Remove unneeded inclusions of <linux/i2c-id.h> 2010-10-24 18:16:58 +02:00
i2c-s3c2410.c i2c: Remove unneeded inclusions of <linux/i2c-id.h> 2010-10-24 18:16:58 +02:00
i2c-s6000.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-s6000.h i2c: xtensa s6000 i2c driver 2009-04-07 10:23:34 +01:00
i2c-scmi.c i2c-scmi: Provide module aliases for automatic loading 2010-03-24 14:38:39 +01:00
i2c-sh7760.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sh_mobile.c i2c: i2c-sh_mobile support for new ICIC bits 2010-04-07 16:19:47 +09:00
i2c-sibyte.c i2c/mips: Fix error return codes from Sibyte i2c bus driver 2010-07-10 09:42:47 +02:00
i2c-simtec.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis96x.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis630.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-sis5595.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-stu300.c i2c-stu300: off by one issue 2010-04-20 01:17:13 +01:00
i2c-stub.c i2c-stub: Expose the default functionality flags 2010-05-21 18:40:56 +02:00
i2c-taos-evm.c i2c-taos-evm: Switch echo off to improve performance 2009-09-18 22:45:43 +02:00
i2c-tiny-usb.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-versatile.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-via.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-viapro.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
i2c-xiic.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
Kconfig Merge branch 'for-linus/i2c-2636' of git://git.fluff.org/bjdooks/linux 2010-08-14 11:57:54 -07:00
Makefile i2c: Change to new flag variable 2010-10-24 18:16:58 +02:00
scx200_acb.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00
scx200_i2c.c i2c: Use <linux/io.h> instead of <asm/io.h> 2010-05-21 18:41:01 +02:00