iio: inkern: clean up error return code
authorKim, Milo <Milo.Kim@ti.com>
Tue, 18 Sep 2012 04:56:00 +0000 (05:56 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 22 Sep 2012 09:13:33 +0000 (10:13 +0100)
commit3183bac16f537503eb3177773781d6d3059ad7b1
tree26f62b097ad2e9b554e68ed4280fa5f445c5d7f0
parent801c4b5ca373c4cfe78912616d68e1f7fd84110c
iio: inkern: clean up error return code

 When the IIO consumer tries to get specific IIO channel,
 few error cases can be happened.
 (a) Memory allocation failure
 (b) No matched ADC channel error
 (c) Invalid input arguments
 This patch enables cleaning up error handling in case of (a) and (b).

 In error handling code,
 (a): the reference count of the IIO device should be decreased.
 (b): the allocated memory should be freed with restoring the reference count.
 Therefore iio_deivce_put() is called in both cases.
 This can be handled in the last error statement.

 Additionally, integer variable is used for stating each error case explicitly.
 Then, the error returns as ERR_PTR() with this value.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/inkern.c