summaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-02-25 16:24:46 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-02-25 16:24:46 -0800
commit8ba2e80283a54b5da351078dd304d33ab65df2db (patch)
tree5400a9f2e772746bffa736ac273172b65227e17b /drivers/base
parentc88ec5adb1d9e1e29ca0cbc3ee5046caab492c11 (diff)
[PATCH] request_firmware(): fix attribute removal
From: Manuel Estrada Sainz <ranty@ranty.pantax.net> Based on patch and suggestions from Dmitry Torokhov - Don't remove attributes, they should be gone automatically.
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/firmware_class.c22
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
index b49476043578..2d5106325123 100644
--- a/drivers/base/firmware_class.c
+++ b/drivers/base/firmware_class.c
@@ -339,13 +339,13 @@ fw_setup_class_device(struct firmware *fw, struct class_device **class_dev_p,
goto out;
fw_priv = class_get_devdata(class_dev);
- fw_priv->fw = fw;
+ fw_priv->fw = fw;
retval = sysfs_create_bin_file(&class_dev->kobj, &fw_priv->attr_data);
if (retval) {
printk(KERN_ERR "%s: sysfs_create_bin_file failed\n",
__FUNCTION__);
- goto error_unreg_class_dev;
+ goto error_unreg;
}
retval = class_device_create_file(class_dev,
@@ -353,28 +353,17 @@ fw_setup_class_device(struct firmware *fw, struct class_device **class_dev_p,
if (retval) {
printk(KERN_ERR "%s: class_device_create_file failed\n",
__FUNCTION__);
- goto error_remove_data;
+ goto error_unreg;
}
*class_dev_p = class_dev;
goto out;
-error_remove_data:
- sysfs_remove_bin_file(&class_dev->kobj, &fw_priv->attr_data);
-error_unreg_class_dev:
+error_unreg:
class_device_unregister(class_dev);
out:
return retval;
}
-static void
-fw_remove_class_device(struct class_device *class_dev)
-{
- struct firmware_priv *fw_priv = class_get_devdata(class_dev);
-
- class_device_remove_file(class_dev, &class_device_attr_loading);
- sysfs_remove_bin_file(&class_dev->kobj, &fw_priv->attr_data);
- class_device_unregister(class_dev);
-}
/**
* request_firmware: - request firmware to hotplug and wait for it
@@ -433,7 +422,7 @@ request_firmware(const struct firmware **firmware_p, const char *name,
}
fw_priv->fw = NULL;
up(&fw_lock);
- fw_remove_class_device(class_dev);
+ class_device_unregister(class_dev);
goto out;
error_kfree_fw:
@@ -569,7 +558,6 @@ firmware_class_init(void)
static void __exit
firmware_class_exit(void)
{
- class_remove_file(&firmware_class, &class_attr_timeout);
class_unregister(&firmware_class);
}