Message ID | 1402140397-17404-1-git-send-email-rickard_strandqvist@spectrumdigital.se |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
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
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
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 --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 */
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(-)