Re: [PATCH -next] usb: ftdi-elan: Fix if == else warnings in ftdi_elan_respond_engine

From: Greg KH
Date: Wed Jan 23 2019 - 07:43:24 EST


On Wed, Jan 23, 2019 at 08:34:42PM +0800, YueHaibing wrote:
> ./drivers/usb/misc/ftdi-elan.c:972:10-12: WARNING: possible condition with no effect (if == else)
> ./drivers/usb/misc/ftdi-elan.c:983:9-11: WARNING: possible condition with no effect (if == else)
> ./drivers/usb/misc/ftdi-elan.c:2052:11-13: WARNING: possible condition with no effect (if == else)
>
> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>

You can not just provide the output of a tool as a changelog text,
sorry.

Please explain what those lines mean, and why you are making the change
that you are.

> ---
> drivers/usb/misc/ftdi-elan.c | 26 --------------------------
> 1 file changed, 26 deletions(-)
>
> diff --git a/drivers/usb/misc/ftdi-elan.c b/drivers/usb/misc/ftdi-elan.c
> index 76c718a..257efac 100644
> --- a/drivers/usb/misc/ftdi-elan.c
> +++ b/drivers/usb/misc/ftdi-elan.c
> @@ -915,7 +915,6 @@ static int ftdi_elan_respond_engine(struct usb_ftdi *ftdi)
> int bytes_read = 0;
> int retry_on_empty = 1;
> int retry_on_timeout = 3;
> - int empty_packets = 0;
> read:{
> int packet_bytes = 0;
> int retval = usb_bulk_msg(ftdi->udev,
> @@ -960,31 +959,6 @@ read:{
> dev_err(&ftdi->udev->dev, "error = %d with packet_bytes = %d with total %d bytes%s\n",
> retval, packet_bytes, bytes_read, diag);
> return retval;
> - } else if (packet_bytes == 2) {
> - unsigned char s0 = ftdi->bulk_in_buffer[0];
> - unsigned char s1 = ftdi->bulk_in_buffer[1];
> - empty_packets += 1;
> - if (s0 == 0x31 && s1 == 0x60) {
> - if (retry_on_empty-- > 0) {
> - goto more;
> - } else
> - return 0;
> - } else if (s0 == 0x31 && s1 == 0x00) {
> - if (retry_on_empty-- > 0) {
> - goto more;
> - } else
> - return 0;
> - } else {
> - if (retry_on_empty-- > 0) {
> - goto more;
> - } else
> - return 0;
> - }
> - } else if (packet_bytes == 1) {
> - if (retry_on_empty-- > 0) {
> - goto more;
> - } else
> - return 0;

Are you _sure_ that these lines are not needed and that the compiler is
not really seeing them? As it doesn't look that way to me, what am I
missing?

thanks,

greg k-h