Skip to content

Commit

Permalink
firmware: dcdbas: use binary attribute groups
Browse files Browse the repository at this point in the history
The dcdbas code was "hand rolling" a binary attribute group, which the
driver core now supports automatically.  So remove the "create the files
by hand" logic, and just set the proper field in the attribute group
structure, saving lots of code and headache.

Cc: Doug Warzecha <Douglas_Warzecha@dell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

--

 Doug, I can take this through my driver-core tree if you don't object.

 drivers/firmware/dcdbas.c |   19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)
  • Loading branch information
Greg KH committed Aug 28, 2013
1 parent f799878 commit 4c33dea
Showing 1 changed file with 2 additions and 17 deletions.
19 changes: 2 additions & 17 deletions drivers/firmware/dcdbas.c
Original file line number Diff line number Diff line change
Expand Up @@ -535,11 +535,12 @@ static struct attribute *dcdbas_dev_attrs[] = {

static struct attribute_group dcdbas_attr_group = {
.attrs = dcdbas_dev_attrs,
.bin_attrs = dcdbas_bin_attrs,
};

static int dcdbas_probe(struct platform_device *dev)
{
int i, error;
int error;

host_control_action = HC_ACTION_NONE;
host_control_smi_type = HC_SMITYPE_NONE;
Expand All @@ -555,18 +556,6 @@ static int dcdbas_probe(struct platform_device *dev)
if (error)
return error;

for (i = 0; dcdbas_bin_attrs[i]; i++) {
error = sysfs_create_bin_file(&dev->dev.kobj,
dcdbas_bin_attrs[i]);
if (error) {
while (--i >= 0)
sysfs_remove_bin_file(&dev->dev.kobj,
dcdbas_bin_attrs[i]);
sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);
return error;
}
}

register_reboot_notifier(&dcdbas_reboot_nb);

dev_info(&dev->dev, "%s (version %s)\n",
Expand All @@ -577,11 +566,7 @@ static int dcdbas_probe(struct platform_device *dev)

static int dcdbas_remove(struct platform_device *dev)
{
int i;

unregister_reboot_notifier(&dcdbas_reboot_nb);
for (i = 0; dcdbas_bin_attrs[i]; i++)
sysfs_remove_bin_file(&dev->dev.kobj, dcdbas_bin_attrs[i]);
sysfs_remove_group(&dev->dev.kobj, &dcdbas_attr_group);

return 0;
Expand Down

0 comments on commit 4c33dea

Please sign in to comment.