diff mbox series

iio: adis16400: Fix an error code in adis16400_initial_setup()

Message ID YCwgFb3JVG6qrlQ+@mwanda (mailing list archive)
State New, archived
Headers show
Series iio: adis16400: Fix an error code in adis16400_initial_setup() | expand

Commit Message

Dan Carpenter Feb. 16, 2021, 7:42 p.m. UTC
This is to silence a new Smatch warning:

    drivers/iio/imu/adis16400.c:492 adis16400_initial_setup()
    warn: sscanf doesn't return error codes

If the condition "if (st->variant->flags & ADIS16400_HAS_SLOW_MODE) {"
is false then we return 1 instead of returning 0 and probe will fail.

Fixes: 72a868b38bdd ("iio: imu: check sscanf return value")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 drivers/iio/imu/adis16400.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Jonathan Cameron Feb. 21, 2021, 3:26 p.m. UTC | #1
On Tue, 16 Feb 2021 22:42:13 +0300
Dan Carpenter <dan.carpenter@oracle.com> wrote:

> This is to silence a new Smatch warning:
> 
>     drivers/iio/imu/adis16400.c:492 adis16400_initial_setup()
>     warn: sscanf doesn't return error codes
> 
> If the condition "if (st->variant->flags & ADIS16400_HAS_SLOW_MODE) {"
> is false then we return 1 instead of returning 0 and probe will fail.
> 
> Fixes: 72a868b38bdd ("iio: imu: check sscanf return value")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Hi Dan,

May be worth a follow up at some point to get rid of the silliness
of goto err_ret by using direct returns.  Obviously that is a rather
less minimal fix however so not so good for backports.

Hence, applied this to the fixes-togreg branch of iio.git and marked
for stable. 

Thanks,


Jonathan

> ---
>  drivers/iio/imu/adis16400.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c
> index 54af2ed664f6..785a4ce606d8 100644
> --- a/drivers/iio/imu/adis16400.c
> +++ b/drivers/iio/imu/adis16400.c
> @@ -462,8 +462,7 @@ static int adis16400_initial_setup(struct iio_dev *indio_dev)
>  		if (ret)
>  			goto err_ret;
>  
> -		ret = sscanf(indio_dev->name, "adis%u\n", &device_id);
> -		if (ret != 1) {
> +		if (sscanf(indio_dev->name, "adis%u\n", &device_id) != 1) {
>  			ret = -EINVAL;
>  			goto err_ret;
>  		}
diff mbox series

Patch

diff --git a/drivers/iio/imu/adis16400.c b/drivers/iio/imu/adis16400.c
index 54af2ed664f6..785a4ce606d8 100644
--- a/drivers/iio/imu/adis16400.c
+++ b/drivers/iio/imu/adis16400.c
@@ -462,8 +462,7 @@  static int adis16400_initial_setup(struct iio_dev *indio_dev)
 		if (ret)
 			goto err_ret;
 
-		ret = sscanf(indio_dev->name, "adis%u\n", &device_id);
-		if (ret != 1) {
+		if (sscanf(indio_dev->name, "adis%u\n", &device_id) != 1) {
 			ret = -EINVAL;
 			goto err_ret;
 		}