From 4c9747a21acd0bb1cb65eadbe10a5a7439b32c3e Mon Sep 17 00:00:00 2001 From: Jonathan Cameron Date: Fri, 12 Aug 2011 16:55:35 +0100 Subject: [PATCH] --- yaml --- r: 267519 b: refs/heads/master c: f7256877c777d08f3af445840d94e37b11038fe2 h: refs/heads/master i: 267517: 3acde7d7be3261b48b33fccb5324605bb724389c 267515: 2d2325a9c7f48a8842613939e2c9adc2b770bb9a 267511: b0ea344a9418a447fb339998e30661323ee49444 267503: ee4fe0b0055986ab5bcbb210dab9754722a54b72 267487: 79623d4ccbb43a96b0cc90c4a030454af2d8156c 267455: 87e61f33aca332c2808ec5654cd4d1c16e54ae1c 267391: 271ef88c7ea8ea3488dda77754c9b51c60ec6e82 267263: ed20d5e1841eeedddf130c032b316d7a87d55cc3 v: v3 --- [refs] | 2 +- trunk/drivers/staging/iio/industrialio-core.c | 28 ++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 5419994c5978..dd832d491d33 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 70a876c59007ddb166a36c1073f45633bef1513b +refs/heads/master: f7256877c777d08f3af445840d94e37b11038fe2 diff --git a/trunk/drivers/staging/iio/industrialio-core.c b/trunk/drivers/staging/iio/industrialio-core.c index 7ee4186c4dfa..8bee56250a96 100644 --- a/trunk/drivers/staging/iio/industrialio-core.c +++ b/trunk/drivers/staging/iio/industrialio-core.c @@ -725,19 +725,29 @@ static ssize_t iio_show_dev_name(struct device *dev, static DEVICE_ATTR(name, S_IRUGO, iio_show_dev_name, NULL); +static struct attribute *iio_base_dummy_attrs[] = { + NULL +}; +static struct attribute_group iio_base_dummy_group = { + .attrs = iio_base_dummy_attrs, +}; + static int iio_device_register_sysfs(struct iio_dev *dev_info) { int i, ret = 0; struct iio_dev_attr *p, *n; - if (dev_info->info->attrs) { + if (dev_info->info->attrs) ret = sysfs_create_group(&dev_info->dev.kobj, dev_info->info->attrs); - if (ret) { - dev_err(dev_info->dev.parent, - "Failed to register sysfs hooks\n"); - goto error_ret; - } + else + ret = sysfs_create_group(&dev_info->dev.kobj, + &iio_base_dummy_group); + + if (ret) { + dev_err(dev_info->dev.parent, + "Failed to register sysfs hooks\n"); + goto error_ret; } /* @@ -753,7 +763,7 @@ static int iio_device_register_sysfs(struct iio_dev *dev_info) if (ret < 0) goto error_clear_attrs; } - if (dev_info->name) { + if (dev_info->name) { ret = sysfs_add_file_to_group(&dev_info->dev.kobj, &dev_attr_name.attr, NULL); @@ -770,6 +780,8 @@ static int iio_device_register_sysfs(struct iio_dev *dev_info) } if (dev_info->info->attrs) sysfs_remove_group(&dev_info->dev.kobj, dev_info->info->attrs); + else + sysfs_remove_group(&dev_info->dev.kobj, &iio_base_dummy_group); error_ret: return ret; @@ -790,6 +802,8 @@ static void iio_device_unregister_sysfs(struct iio_dev *dev_info) if (dev_info->info->attrs) sysfs_remove_group(&dev_info->dev.kobj, dev_info->info->attrs); + else + sysfs_remove_group(&dev_info->dev.kobj, &iio_base_dummy_group); } /* Return a negative errno on failure */