lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170118193154.GF33920@dtor-ws>
Date:   Wed, 18 Jan 2017 11:31:54 -0800
From:   Dmitry Torokhov <dmitry.torokhov@...il.com>
To:     Guenter Roeck <linux@...ck-us.net>
Cc:     linux-input@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 28/33] Input: egalax_ts - Drop unnecessary call to
 i2c_set_clientdata and other changes

On Wed, Jan 18, 2017 at 09:46:49AM -0800, Guenter Roeck wrote:
> There is no call to i2c_get_clientdata() or dev_get_drvdata().
> Drop the unnecessary call to i2c_set_clientdata().
> Other relevant changes:
>   Simplify error return
>   Drop error messages after memory allocation failures
> 
> This conversion was done automatically with coccinelle using the
> following semantic patches. The semantic patches and the scripts
> used to generate this commit log are available at
> https://github.com/groeck/coccinelle-patches
> 
> - Drop unused variables
> - Drop unnecessary braces around conditional return statements
> - Drop error message after devm_kzalloc() failure
> - Replace 'if (e) return e; return 0;' with 'return e;'
> - Drop i2c_set_clientdata()
> 
> Signed-off-by: Guenter Roeck <linux@...ck-us.net>
> ---
>  drivers/input/touchscreen/egalax_ts.c | 21 ++++-----------------
>  1 file changed, 4 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
> index 1afc08b08155..05ba1a6dc7fc 100644
> --- a/drivers/input/touchscreen/egalax_ts.c
> +++ b/drivers/input/touchscreen/egalax_ts.c
> @@ -82,10 +82,9 @@ static irqreturn_t egalax_ts_interrupt(int irq, void *dev_id)
>  	if (ret < 0)
>  		return IRQ_HANDLED;
>  
> -	if (buf[0] != REPORT_MODE_MTTOUCH) {
> +	if (buf[0] != REPORT_MODE_MTTOUCH)
>  		/* ignore mouse events and vendor events */
>  		return IRQ_HANDLED;
> -	}

These are not unnecessary braces, as there are more than 1 line. I.e.
comments are counted along statements, at least by myself. Also, if
there is a single statement spanning several lines I also prefer to have
braces around it.

>  
>  	state = buf[1];
>  	x = (buf[3] << 8) | buf[2];
> @@ -155,13 +154,8 @@ static int egalax_wake_up_device(struct i2c_client *client)
>  static int egalax_firmware_version(struct i2c_client *client)
>  {
>  	static const u8 cmd[MAX_I2C_DATA_LEN] = { 0x03, 0x03, 0xa, 0x01, 0x41 };
> -	int ret;
> -
> -	ret = i2c_master_send(client, cmd, MAX_I2C_DATA_LEN);
> -	if (ret < 0)
> -		return ret;
>  
> -	return 0;
> +	return i2c_master_send(client, cmd, MAX_I2C_DATA_LEN);

This is not an equivalent transformation, as now callers need to check
for negative return value instead of non-zero. i2c_master_send() returns
number of bytes written on success.

>  }
>  
>  static int egalax_ts_probe(struct i2c_client *client,
> @@ -172,10 +166,8 @@ static int egalax_ts_probe(struct i2c_client *client,
>  	int error;
>  
>  	ts = devm_kzalloc(&client->dev, sizeof(struct egalax_ts), GFP_KERNEL);
> -	if (!ts) {
> -		dev_err(&client->dev, "Failed to allocate memory\n");
> +	if (!ts)
>  		return -ENOMEM;
> -	}
>  
>  	input_dev = devm_input_allocate_device(&client->dev);
>  	if (!input_dev) {
> @@ -225,12 +217,7 @@ static int egalax_ts_probe(struct i2c_client *client,
>  		return error;
>  	}
>  
> -	error = input_register_device(ts->input_dev);
> -	if (error)
> -		return error;
> -
> -	i2c_set_clientdata(client, ts);
> -	return 0;
> +	return input_register_device(ts->input_dev);
>  }
>  
>  static const struct i2c_device_id egalax_ts_id[] = {
> -- 
> 2.7.4
> 

Thanks.

-- 
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ