diff options
| author | Andrew Morton <akpm@osdl.org> | 2004-02-25 16:24:46 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-02-25 16:24:46 -0800 |
| commit | 8ba2e80283a54b5da351078dd304d33ab65df2db (patch) | |
| tree | 5400a9f2e772746bffa736ac273172b65227e17b /drivers/base | |
| parent | c88ec5adb1d9e1e29ca0cbc3ee5046caab492c11 (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.c | 22 |
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); } |
