]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
gpiolib: cdev: use !mem_is_zero() instead of memchr_inv(s, 0, n)
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Sun, 10 Nov 2024 20:16:15 +0000 (22:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 1 Jun 2026 15:46:32 +0000 (17:46 +0200)
[ Upstream commit e106b1dd38e723ec2bb2bf57ea9b2aff464b9423 ]

Use the mem_is_zero() helper where possible.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20241110201706.16614-1-andy.shevchenko@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Stable-dep-of: 3e6ccd790ed6 ("gpio: cdev: check if uAPI v2 config attributes are correctly zeroed")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpio/gpiolib-cdev.c

index bd2921ef29a14479bfe8fe44cbe45c597048ec26..d44a3e4c2a09c42d3f83de4dfc03704e18dad2dd 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/hte.h>
 #include <linux/interrupt.h>
 #include <linux/irqreturn.h>
-#include <linux/kernel.h>
 #include <linux/kfifo.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
@@ -26,6 +25,7 @@
 #include <linux/rbtree.h>
 #include <linux/seq_file.h>
 #include <linux/spinlock.h>
+#include <linux/string.h>
 #include <linux/timekeeping.h>
 #include <linux/uaccess.h>
 #include <linux/workqueue.h>
@@ -1331,7 +1331,7 @@ static int gpio_v2_line_config_validate(struct gpio_v2_line_config *lc,
        if (lc->num_attrs > GPIO_V2_LINE_NUM_ATTRS_MAX)
                return -EINVAL;
 
-       if (memchr_inv(lc->padding, 0, sizeof(lc->padding)))
+       if (!mem_is_zero(lc->padding, sizeof(lc->padding)))
                return -EINVAL;
 
        for (i = 0; i < num_lines; i++) {
@@ -1746,7 +1746,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip)
        if ((ulr.num_lines == 0) || (ulr.num_lines > GPIO_V2_LINES_MAX))
                return -EINVAL;
 
-       if (memchr_inv(ulr.padding, 0, sizeof(ulr.padding)))
+       if (!mem_is_zero(ulr.padding, sizeof(ulr.padding)))
                return -EINVAL;
 
        lc = &ulr.config;
@@ -2516,7 +2516,7 @@ static int lineinfo_get(struct gpio_chardev_data *cdev, void __user *ip,
        if (copy_from_user(&lineinfo, ip, sizeof(lineinfo)))
                return -EFAULT;
 
-       if (memchr_inv(lineinfo.padding, 0, sizeof(lineinfo.padding)))
+       if (!mem_is_zero(lineinfo.padding, sizeof(lineinfo.padding)))
                return -EINVAL;
 
        desc = gpio_device_get_desc(cdev->gdev, lineinfo.offset);