Re: [PATCH] i2c: mux: only print failure message on error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, May 14, 2017 at 06:41:13PM +0200, Peter Rosin wrote:
> As is, a failure message is printed unconditionally, which is confusing.
> And noisy.
>
> Fixes: 8d4d159f25a7 ("i2c: mux: provide more info on failure in i2c_mux_add_adapter")
> Signed-off-by: Peter Rosin <peda@xxxxxxxxxx>
> ---
>  drivers/i2c/i2c-mux.c | 24 ++++++++++++++----------
>  1 file changed, 14 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c
> index 26f7237558ba..ccf2ce1836c8 100644
> --- a/drivers/i2c/i2c-mux.c
> +++ b/drivers/i2c/i2c-mux.c
> @@ -395,18 +395,22 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc,
>  	if (force_nr) {
>  		priv->adap.nr = force_nr;
>  		ret = i2c_add_numbered_adapter(&priv->adap);
> -		dev_err(&parent->dev,
> -			"failed to add mux-adapter %u as bus %u (error=%d)\n",
> -			chan_id, force_nr, ret);
> +		if (ret < 0) {
> +			dev_err(&parent->dev,
> +				"failed to add mux-adapter %u as bus %u (error=%d)\n",
> +				chan_id, force_nr, ret);
> +			kfree(priv);
> +			return ret;
> +		}
>  	} else {
>  		ret = i2c_add_adapter(&priv->adap);
> -		dev_err(&parent->dev,
> -			"failed to add mux-adapter %u (error=%d)\n",
> -			chan_id, ret);
> -	}
> -	if (ret < 0) {
> -		kfree(priv);
> -		return ret;
> +		if (ret < 0) {
> +			dev_err(&parent->dev,
> +				"failed to add mux-adapter %u (error=%d)\n",
> +				chan_id, ret);
> +			kfree(priv);
> +			return ret;

It is better to add goto label, this will give one place for kfree->return code.

Thanks

> +		}
>  	}
>
>  	WARN(sysfs_create_link(&priv->adap.dev.kobj, &muxc->dev->kobj,
> --
> 2.1.4
>

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux