From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
In preparation for future commits which will make use of descriptor AND
GPIO-device data in the same functions rename the former from data to
desc_data separately which will make future changes smaller and easier
to read.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/gpio/gpiolib-sysfs.c | 63 ++++++++++++++++++++++----------------------
1 file changed, 32 insertions(+), 31 deletions(-)
diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
index 2f1df2ceb7360200c718ea95089720ebfa5a513a..515fd0d307cf820b036b1ea966b300715992359f 100644
--- a/drivers/gpio/gpiolib-sysfs.c
+++ b/drivers/gpio/gpiolib-sysfs.c
@@ -686,9 +686,9 @@ static void gpiod_attr_init(struct device_attribute *dev_attr, const char *name,
*/
int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
{
+ struct gpiod_data *desc_data;
struct gpio_device *gdev;
struct attribute **attrs;
- struct gpiod_data *data;
struct device *dev;
int status;
@@ -720,47 +720,48 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
goto err_clear_bit;
}
- data = kzalloc(sizeof(*data), GFP_KERNEL);
- if (!data) {
+ desc_data = kzalloc(sizeof(*desc_data), GFP_KERNEL);
+ if (!desc_data) {
status = -ENOMEM;
goto err_clear_bit;
}
- data->desc = desc;
- mutex_init(&data->mutex);
+ desc_data->desc = desc;
+ mutex_init(&desc_data->mutex);
if (guard.gc->direction_input && guard.gc->direction_output)
- data->direction_can_change = direction_may_change;
+ desc_data->direction_can_change = direction_may_change;
else
- data->direction_can_change = false;
+ desc_data->direction_can_change = false;
- gpiod_attr_init(&data->dir_attr, "direction",
+ gpiod_attr_init(&desc_data->dir_attr, "direction",
direction_show, direction_store);
- gpiod_attr_init(&data->val_attr, "value", value_show, value_store);
- gpiod_attr_init(&data->edge_attr, "edge", edge_show, edge_store);
- gpiod_attr_init(&data->active_low_attr, "active_low",
- active_low_show, active_low_store);
+ gpiod_attr_init(&desc_data->val_attr, "value", value_show, value_store);
+ gpiod_attr_init(&desc_data->edge_attr, "edge", edge_show, edge_store);
+ gpiod_attr_init(&desc_data->active_low_attr, "active_low",
+ active_low_show, active_low_store);
- attrs = data->attrs;
- data->attr_group.is_visible = gpio_is_visible;
- attrs[GPIO_SYSFS_LINE_ATTR_DIRECTION] = &data->dir_attr.attr;
- attrs[GPIO_SYSFS_LINE_ATTR_VALUE] = &data->val_attr.attr;
- attrs[GPIO_SYSFS_LINE_ATTR_EDGE] = &data->edge_attr.attr;
+ attrs = desc_data->attrs;
+ desc_data->attr_group.is_visible = gpio_is_visible;
+ attrs[GPIO_SYSFS_LINE_ATTR_DIRECTION] = &desc_data->dir_attr.attr;
+ attrs[GPIO_SYSFS_LINE_ATTR_VALUE] = &desc_data->val_attr.attr;
+ attrs[GPIO_SYSFS_LINE_ATTR_EDGE] = &desc_data->edge_attr.attr;
attrs[GPIO_SYSFS_LINE_ATTR_ACTIVE_LOW] =
- &data->active_low_attr.attr;
+ &desc_data->active_low_attr.attr;
- data->attr_group.attrs = data->attrs;
- data->attr_groups[0] = &data->attr_group;
+ desc_data->attr_group.attrs = desc_data->attrs;
+ desc_data->attr_groups[0] = &desc_data->attr_group;
dev = device_create_with_groups(&gpio_class, &gdev->dev,
- MKDEV(0, 0), data, data->attr_groups,
+ MKDEV(0, 0), desc_data,
+ desc_data->attr_groups,
"gpio%u", desc_to_gpio(desc));
if (IS_ERR(dev)) {
status = PTR_ERR(dev);
goto err_free_data;
}
- data->value_class_node = sysfs_get_dirent(dev->kobj.sd, "value");
- if (!data->value_class_node) {
+ desc_data->value_class_node = sysfs_get_dirent(dev->kobj.sd, "value");
+ if (!desc_data->value_class_node) {
status = -ENODEV;
goto err_unregister_device;
}
@@ -770,7 +771,7 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
err_unregister_device:
device_unregister(dev);
err_free_data:
- kfree(data);
+ kfree(desc_data);
err_clear_bit:
clear_bit(FLAG_EXPORT, &desc->flags);
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
@@ -827,7 +828,7 @@ EXPORT_SYMBOL_GPL(gpiod_export_link);
*/
void gpiod_unexport(struct gpio_desc *desc)
{
- struct gpiod_data *data;
+ struct gpiod_data *desc_data;
struct device *dev;
if (!desc) {
@@ -843,22 +844,22 @@ void gpiod_unexport(struct gpio_desc *desc)
if (!dev)
return;
- data = dev_get_drvdata(dev);
+ desc_data = dev_get_drvdata(dev);
clear_bit(FLAG_EXPORT, &desc->flags);
- sysfs_put(data->value_class_node);
+ sysfs_put(desc_data->value_class_node);
device_unregister(dev);
/*
* Release irq after deregistration to prevent race with
* edge_store.
*/
- if (data->irq_flags)
- gpio_sysfs_free_irq(data);
+ if (desc_data->irq_flags)
+ gpio_sysfs_free_irq(desc_data);
}
put_device(dev);
- mutex_destroy(&data->mutex);
- kfree(data);
+ mutex_destroy(&desc_data->mutex);
+ kfree(desc_data);
}
EXPORT_SYMBOL_GPL(gpiod_unexport);
--
2.48.1
On Mon, Jun 23, 2025 at 10:59:53AM +0200, Bartosz Golaszewski wrote: > > In preparation for future commits which will make use of descriptor AND > GPIO-device data in the same functions rename the former from data to > desc_data separately which will make future changes smaller and easier > to read. ... > + attrs = desc_data->attrs; > + desc_data->attr_group.is_visible = gpio_is_visible; > + attrs[GPIO_SYSFS_LINE_ATTR_DIRECTION] = &desc_data->dir_attr.attr; > + attrs[GPIO_SYSFS_LINE_ATTR_VALUE] = &desc_data->val_attr.attr; > + attrs[GPIO_SYSFS_LINE_ATTR_EDGE] = &desc_data->edge_attr.attr; > attrs[GPIO_SYSFS_LINE_ATTR_ACTIVE_LOW] = > - &data->active_low_attr.attr; > + &desc_data->active_low_attr.attr; These were added in the previous patch and immediately got rewritten?! Sounds like a wrong patch order. -- With Best Regards, Andy Shevchenko
On Fri, Jun 27, 2025 at 5:43 PM Andy Shevchenko <andriy.shevchenko@intel.com> wrote: > > On Mon, Jun 23, 2025 at 10:59:53AM +0200, Bartosz Golaszewski wrote: > > > > In preparation for future commits which will make use of descriptor AND > > GPIO-device data in the same functions rename the former from data to > > desc_data separately which will make future changes smaller and easier > > to read. > > ... > > > + attrs = desc_data->attrs; > > + desc_data->attr_group.is_visible = gpio_is_visible; > > + attrs[GPIO_SYSFS_LINE_ATTR_DIRECTION] = &desc_data->dir_attr.attr; > > + attrs[GPIO_SYSFS_LINE_ATTR_VALUE] = &desc_data->val_attr.attr; > > + attrs[GPIO_SYSFS_LINE_ATTR_EDGE] = &desc_data->edge_attr.attr; > > attrs[GPIO_SYSFS_LINE_ATTR_ACTIVE_LOW] = > > - &data->active_low_attr.attr; > > + &desc_data->active_low_attr.attr; > > These were added in the previous patch and immediately got rewritten?! > Sounds like a wrong patch order. > Yeah, bad rebase. Thanks for catching it. Bart
On Mon, Jun 30, 2025 at 10:57 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > On Fri, Jun 27, 2025 at 5:43 PM Andy Shevchenko > <andriy.shevchenko@intel.com> wrote: > > > > On Mon, Jun 23, 2025 at 10:59:53AM +0200, Bartosz Golaszewski wrote: > > > > > > In preparation for future commits which will make use of descriptor AND > > > GPIO-device data in the same functions rename the former from data to > > > desc_data separately which will make future changes smaller and easier > > > to read. > > > > ... > > > > > + attrs = desc_data->attrs; > > > + desc_data->attr_group.is_visible = gpio_is_visible; > > > + attrs[GPIO_SYSFS_LINE_ATTR_DIRECTION] = &desc_data->dir_attr.attr; > > > + attrs[GPIO_SYSFS_LINE_ATTR_VALUE] = &desc_data->val_attr.attr; > > > + attrs[GPIO_SYSFS_LINE_ATTR_EDGE] = &desc_data->edge_attr.attr; > > > attrs[GPIO_SYSFS_LINE_ATTR_ACTIVE_LOW] = > > > - &data->active_low_attr.attr; > > > + &desc_data->active_low_attr.attr; > > > > These were added in the previous patch and immediately got rewritten?! > > Sounds like a wrong patch order. > > > > Yeah, bad rebase. Thanks for catching it. > > Bart Ah, no actually I got misled by the indentation difference. It was supposed to be like this but maybe it is better to change places of those two patches. Bart
On Mon, Jun 23, 2025 at 11:00 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > In preparation for future commits which will make use of descriptor AND > GPIO-device data in the same functions rename the former from data to > desc_data separately which will make future changes smaller and easier > to read. > > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
© 2016 - 2025 Red Hat, Inc.