This code causes a static checker because we have an upper bound on
"value" but not a lower bound.  In other words "value" can be s32min-2.
It's harmless but really it should just be bool.

Signed-off-by: Dan Carpenter <[email protected]>

diff --git a/drivers/scsi/myrs.c b/drivers/scsi/myrs.c
index 3b87c6942a8e..eaa9d143a282 100644
--- a/drivers/scsi/myrs.c
+++ b/drivers/scsi/myrs.c
@@ -1590,15 +1590,12 @@ static ssize_t 
myrs_store_suppress_enclosure_messages(struct device *dev,
 {
        struct scsi_device *sdev = to_scsi_device(dev);
        myrs_hba *cs = (myrs_hba *)sdev->host->hostdata;
-       char tmpbuf[8];
-       ssize_t len;
-       int value;
+       bool value;
+       int ret;
 
-       len = count > sizeof(tmpbuf) - 1 ? sizeof(tmpbuf) - 1 : count;
-       strncpy(tmpbuf, buf, len);
-       tmpbuf[len] = '\0';
-       if (sscanf(tmpbuf, "%d", &value) != 1 || value > 2)
-               return -EINVAL;
+       ret = kstrtobool(buf, &value);
+       if (ret)
+               return ret;
 
        cs->disable_enc_msg = value;
        return count;

Reply via email to