diff mbox

net: wimax: i2400m: control.c: Cleaning up conjunction always evaluates to false

Message ID 1402140397-17404-1-git-send-email-rickard_strandqvist@spectrumdigital.se
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Rickard Strandqvist June 7, 2014, 11:26 a.m. UTC
Logical conjunction always evaluates to false:  minor < 2 && minor > 1
I guess what you wanted is rather: minor > 2 || minor < 1

This was partly found using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
---
 drivers/net/wimax/i2400m/control.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Joe Perches June 7, 2014, 11:42 a.m. UTC | #1
On Sat, 2014-06-07 at 13:26 +0200, Rickard Strandqvist wrote:
> Logical conjunction always evaluates to false:  minor < 2 && minor > 1
> I guess what you wanted is rather: minor > 2 || minor < 1
[]
> diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
[]
> @@ -1061,7 +1061,7 @@ int i2400m_firmware_check(struct i2400m *i2400m)
>  		goto error_bad_major;
>  	}
>  	result = 0;
> -	if (minor < I2400M_HDIv_MINOR_2 && minor > I2400M_HDIv_MINOR)
> +	if (minor > I2400M_HDIv_MINOR_2 || minor < I2400M_HDIv_MINOR)

perhaps clearer as:

	if (!(minor == I2400M_HDIv_MINOR || minor == I2400M_HDIv_MINOR_2))

>  		dev_warn(dev, "untested minor fw version %u.%u.%u\n",
>  			 major, minor, branch);
>  	/* Yes, we ignore the branch -- we don't have to track it */



--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rickard Strandqvist June 7, 2014, 11:52 a.m. UTC | #2
Hi

Thought about it, and now it becomes clearer.
But if someone decides to change the X or Y to a larger range than 1
and 2, it will not be correct ..?
Or, will it not happen?

But I'm no expert on this code :)
I just wanted to point out the logical error.


Best regards
Rickard Strandqvist


2014-06-07 13:42 GMT+02:00 Joe Perches <joe@perches.com>:
> On Sat, 2014-06-07 at 13:26 +0200, Rickard Strandqvist wrote:
>> Logical conjunction always evaluates to false:  minor < 2 && minor > 1
>> I guess what you wanted is rather: minor > 2 || minor < 1
> []
>> diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
> []
>> @@ -1061,7 +1061,7 @@ int i2400m_firmware_check(struct i2400m *i2400m)
>>               goto error_bad_major;
>>       }
>>       result = 0;
>> -     if (minor < I2400M_HDIv_MINOR_2 && minor > I2400M_HDIv_MINOR)
>> +     if (minor > I2400M_HDIv_MINOR_2 || minor < I2400M_HDIv_MINOR)
>
> perhaps clearer as:
>
>         if (!(minor == I2400M_HDIv_MINOR || minor == I2400M_HDIv_MINOR_2))
>
>>               dev_warn(dev, "untested minor fw version %u.%u.%u\n",
>>                        major, minor, branch);
>>       /* Yes, we ignore the branch -- we don't have to track it */
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller June 11, 2014, 7:15 a.m. UTC | #3
From: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Date: Sat,  7 Jun 2014 13:26:37 +0200

> Logical conjunction always evaluates to false:  minor < 2 && minor > 1
> I guess what you wanted is rather: minor > 2 || minor < 1
> 
> This was partly found using a static code analysis program called cppcheck.
> 
> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/wimax/i2400m/control.c b/drivers/net/wimax/i2400m/control.c
index 4a01e5c..4c41790 100644
--- a/drivers/net/wimax/i2400m/control.c
+++ b/drivers/net/wimax/i2400m/control.c
@@ -1061,7 +1061,7 @@  int i2400m_firmware_check(struct i2400m *i2400m)
 		goto error_bad_major;
 	}
 	result = 0;
-	if (minor < I2400M_HDIv_MINOR_2 && minor > I2400M_HDIv_MINOR)
+	if (minor > I2400M_HDIv_MINOR_2 || minor < I2400M_HDIv_MINOR)
 		dev_warn(dev, "untested minor fw version %u.%u.%u\n",
 			 major, minor, branch);
 	/* Yes, we ignore the branch -- we don't have to track it */