gpio: cdev: replace gpiochip_get_desc() with gpio_device_get_desc()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 24 Jan 2024 16:13:51 +0000 (17:13 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 12 Feb 2024 09:51:03 +0000 (10:51 +0100)
gpio_device_get_desc() is the safer alternative to gpiochip_get_desc().
As we don't really need to dereference the chip pointer to retrieve the
descriptors in character device code, let's use it.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpiolib-cdev.c

index 3588aaf90e4585952aef55565f05b542770e7896..8e37e3befa084080d8f455ec82b29f34d7a8781f 100644 (file)
@@ -332,7 +332,7 @@ static int linehandle_create(struct gpio_device *gdev, void __user *ip)
        /* Request each GPIO */
        for (i = 0; i < handlereq.lines; i++) {
                u32 offset = handlereq.lineoffsets[i];
-               struct gpio_desc *desc = gpiochip_get_desc(gdev->chip, offset);
+               struct gpio_desc *desc = gpio_device_get_desc(gdev, offset);
 
                if (IS_ERR(desc)) {
                        ret = PTR_ERR(desc);
@@ -1739,7 +1739,7 @@ static int linereq_create(struct gpio_device *gdev, void __user *ip)
        /* Request each GPIO */
        for (i = 0; i < ulr.num_lines; i++) {
                u32 offset = ulr.offsets[i];
-               struct gpio_desc *desc = gpiochip_get_desc(gdev->chip, offset);
+               struct gpio_desc *desc = gpio_device_get_desc(gdev, offset);
 
                if (IS_ERR(desc)) {
                        ret = PTR_ERR(desc);
@@ -2123,7 +2123,7 @@ static int lineevent_create(struct gpio_device *gdev, void __user *ip)
        lflags = eventreq.handleflags;
        eflags = eventreq.eventflags;
 
-       desc = gpiochip_get_desc(gdev->chip, offset);
+       desc = gpio_device_get_desc(gdev, offset);
        if (IS_ERR(desc))
                return PTR_ERR(desc);
 
@@ -2419,7 +2419,7 @@ static int lineinfo_get_v1(struct gpio_chardev_data *cdev, void __user *ip,
                return -EFAULT;
 
        /* this doubles as a range check on line_offset */
-       desc = gpiochip_get_desc(cdev->gdev->chip, lineinfo.line_offset);
+       desc = gpio_device_get_desc(cdev->gdev, lineinfo.line_offset);
        if (IS_ERR(desc))
                return PTR_ERR(desc);
 
@@ -2456,7 +2456,7 @@ static int lineinfo_get(struct gpio_chardev_data *cdev, void __user *ip,
        if (memchr_inv(lineinfo.padding, 0, sizeof(lineinfo.padding)))
                return -EINVAL;
 
-       desc = gpiochip_get_desc(cdev->gdev->chip, lineinfo.offset);
+       desc = gpio_device_get_desc(cdev->gdev, lineinfo.offset);
        if (IS_ERR(desc))
                return PTR_ERR(desc);