mfd: ab8500-debugfs: Fix incompatible types in comparison expression issue
authorLee Jones <lee.jones@linaro.org>
Tue, 23 Jun 2020 10:05:23 +0000 (11:05 +0100)
committerLee Jones <lee.jones@linaro.org>
Mon, 6 Jul 2020 07:31:55 +0000 (08:31 +0100)
Smatch reports:

 drivers/mfd/ab8500-debugfs.c:1804:20: error: incompatible types in comparison expression (different type sizes):
 drivers/mfd/ab8500-debugfs.c:1804:20:    unsigned int *
 drivers/mfd/ab8500-debugfs.c:1804:20:    unsigned long *

This is due to mixed types being compared in a min() comparison.  Fix
this by treating values as signed and casting them to the same type
as the receiving variable.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/ab8500-debugfs.c

index 1a9a341..6d1bf7c 100644 (file)
@@ -1801,7 +1801,7 @@ static ssize_t ab8500_hwreg_write(struct file *file,
        int buf_size, ret;
 
        /* Get userspace string and assure termination */
-       buf_size = min(count, (sizeof(buf)-1));
+       buf_size = min((int)count, (int)(sizeof(buf)-1));
        if (copy_from_user(buf, user_buf, buf_size))
                return -EFAULT;
        buf[buf_size] = 0;