On Thu, 21 Feb 2019 21:38:26 +0300 Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > We put an upper bound on "new" but we don't check for negatives. U8_MAX has unsigned type, so `if (new > U8_MAX)' does check for negative. > In > this case the underflow doesn't matter very much, but we may as well > make the static checker happy. > > ... > > --- a/lib/test_firmware.c > +++ b/lib/test_firmware.c > @@ -326,15 +326,12 @@ static ssize_t test_dev_config_show_int(char *buf, int cfg) > static int test_dev_config_update_u8(const char *buf, size_t size, u8 *cfg) > { > int ret; > - long new; > + u8 new; > > - ret = kstrtol(buf, 10, &new); > + ret = kstrtou8(buf, 10, &new); > if (ret) > return ret; > > - if (new > U8_MAX) > - return -EINVAL; > - > mutex_lock(&test_fw_mutex); > *(u8 *)cfg = new; > mutex_unlock(&test_fw_mutex); if *buf=="257", previous behavior: -EINVAL new behavior: *cfg = 1 yes? The old behavior seems better.