From: Arnd Bergmann <[email protected]>
The 'gc' variable is never set before it gets printed:
drivers/gpio/gpiolib-cdev.c:2802:11: error: variable 'gc' is uninitialized when used here [-Werror,-Wuninitialized]
2802 | chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
| ^~
drivers/gpio/gpiolib.h:277:11: note: expanded from macro 'chip_dbg'
277 | dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__)
| ^~
Use dev_dbg() directly.
Fixes: 8574b5b47610 ("gpio: cdev: use correct pointer accessors with SRCU")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/gpio/gpiolib-cdev.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
index 85037fa4925e..d6e8d2b7ac8f 100644
--- a/drivers/gpio/gpiolib-cdev.c
+++ b/drivers/gpio/gpiolib-cdev.c
@@ -2783,7 +2783,6 @@ static const struct file_operations gpio_fileops = {
int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt)
{
- struct gpio_chip *gc;
int ret;
cdev_init(&gdev->chrdev, &gpio_fileops);
@@ -2799,7 +2798,7 @@ int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt)
if (!rcu_access_pointer(gdev->chip))
return -ENODEV;
- chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
+ dev_dbg(&gdev->dev, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
return 0;
}
--
2.39.2
On Fri, Feb 16, 2024, at 14:19, Bartosz Golaszewski wrote:
> On Fri, Feb 16, 2024 at 2:00 PM Arnd Bergmann <[email protected]> wrote:
>>
>> From: Arnd Bergmann <[email protected]>
>>
>> The 'gc' variable is never set before it gets printed:
>>
>> drivers/gpio/gpiolib-cdev.c:2802:11: error: variable 'gc' is uninitialized when used here [-Werror,-Wuninitialized]
>> 2802 | chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
>> | ^~
>> drivers/gpio/gpiolib.h:277:11: note: expanded from macro 'chip_dbg'
>> 277 | dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__)
>> | ^~
>>
>> Use dev_dbg() directly.
>>
>> Fixes: 8574b5b47610 ("gpio: cdev: use correct pointer accessors with SRCU")
>> Signed-off-by: Arnd Bergmann <[email protected]>
>> ---
>
> I seem to have beat you to it[1] and my patch doesn't change the log
> message so I'll apply it instead of this one.
Ok, thanks. I thought about doing this, but could not
figure out which of the RCU primitives to use.
Arnd
On Fri, Feb 16, 2024 at 03:04:14PM +0100, Arnd Bergmann wrote:
> On Fri, Feb 16, 2024, at 14:19, Bartosz Golaszewski wrote:
> > On Fri, Feb 16, 2024 at 2:00 PM Arnd Bergmann <[email protected]> wrote:
> >>
> >> From: Arnd Bergmann <[email protected]>
> >>
> >> The 'gc' variable is never set before it gets printed:
> >>
> >> drivers/gpio/gpiolib-cdev.c:2802:11: error: variable 'gc' is uninitialized when used here [-Werror,-Wuninitialized]
> >> 2802 | chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
> >> | ^~
> >> drivers/gpio/gpiolib.h:277:11: note: expanded from macro 'chip_dbg'
> >> 277 | dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__)
> >> | ^~
> >>
> >> Use dev_dbg() directly.
> >>
> >> Fixes: 8574b5b47610 ("gpio: cdev: use correct pointer accessors with SRCU")
> >> Signed-off-by: Arnd Bergmann <[email protected]>
> >> ---
> >
> > I seem to have beat you to it[1] and my patch doesn't change the log
> > message so I'll apply it instead of this one.
>
> Ok, thanks. I thought about doing this, but could not
> figure out which of the RCU primitives to use.
I will count that as a bug against RCU's documentation, but I am not
sure how to fix it. Thoughts?
Thanx, Paul
On Fri, Feb 16, 2024, at 16:51, Paul E. McKenney wrote:
> On Fri, Feb 16, 2024 at 03:04:14PM +0100, Arnd Bergmann wrote:
>> On Fri, Feb 16, 2024, at 14:19, Bartosz Golaszewski wrote:
>> > On Fri, Feb 16, 2024 at 2:00 PM Arnd Bergmann <[email protected]> wrote:
>> >>
>> >> From: Arnd Bergmann <[email protected]>
>> >>
>> >> The 'gc' variable is never set before it gets printed:
>> >>
>> >> drivers/gpio/gpiolib-cdev.c:2802:11: error: variable 'gc' is uninitialized when used here [-Werror,-Wuninitialized]
>> >> 2802 | chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
>> >> | ^~
>> >> drivers/gpio/gpiolib.h:277:11: note: expanded from macro 'chip_dbg'
>> >> 277 | dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__)
>> >> | ^~
>> >>
>> >> Use dev_dbg() directly.
>> >>
>> >> Fixes: 8574b5b47610 ("gpio: cdev: use correct pointer accessors with SRCU")
>> >> Signed-off-by: Arnd Bergmann <[email protected]>
>> >> ---
>> >
>> > I seem to have beat you to it[1] and my patch doesn't change the log
>> > message so I'll apply it instead of this one.
>>
>> Ok, thanks. I thought about doing this, but could not
>> figure out which of the RCU primitives to use.
>
> I will count that as a bug against RCU's documentation, but I am not
> sure how to fix it. Thoughts?
I didn't really try at all, I just figured I could avoid
thinking about it by using the device pointer at hand.
I'm sure the docs would have told me if I had bothered to look.
Arnd
On Fri, Feb 16, 2024 at 05:17:06PM +0100, Arnd Bergmann wrote:
> On Fri, Feb 16, 2024, at 16:51, Paul E. McKenney wrote:
> > On Fri, Feb 16, 2024 at 03:04:14PM +0100, Arnd Bergmann wrote:
> >> On Fri, Feb 16, 2024, at 14:19, Bartosz Golaszewski wrote:
> >> > On Fri, Feb 16, 2024 at 2:00 PM Arnd Bergmann <[email protected]> wrote:
> >> >>
> >> >> From: Arnd Bergmann <[email protected]>
> >> >>
> >> >> The 'gc' variable is never set before it gets printed:
> >> >>
> >> >> drivers/gpio/gpiolib-cdev.c:2802:11: error: variable 'gc' is uninitialized when used here [-Werror,-Wuninitialized]
> >> >> 2802 | chip_dbg(gc, "added GPIO chardev (%d:%d)\n", MAJOR(devt), gdev->id);
> >> >> | ^~
> >> >> drivers/gpio/gpiolib.h:277:11: note: expanded from macro 'chip_dbg'
> >> >> 277 | dev_dbg(&gc->gpiodev->dev, "(%s): " fmt, gc->label, ##__VA_ARGS__)
> >> >> | ^~
> >> >>
> >> >> Use dev_dbg() directly.
> >> >>
> >> >> Fixes: 8574b5b47610 ("gpio: cdev: use correct pointer accessors with SRCU")
> >> >> Signed-off-by: Arnd Bergmann <[email protected]>
> >> >> ---
> >> >
> >> > I seem to have beat you to it[1] and my patch doesn't change the log
> >> > message so I'll apply it instead of this one.
> >>
> >> Ok, thanks. I thought about doing this, but could not
> >> figure out which of the RCU primitives to use.
> >
> > I will count that as a bug against RCU's documentation, but I am not
> > sure how to fix it. Thoughts?
>
> I didn't really try at all, I just figured I could avoid
> thinking about it by using the device pointer at hand.
>
> I'm sure the docs would have told me if I had bothered to look.
OK, a low-priority bug against RCU's documentation, then. ;-)
Thanx, paul