From: Andrew Morton Date: Thu, 26 Feb 2004 00:24:46 +0000 (-0800) Subject: [PATCH] request_firmware(): fix attribute removal X-Git-Tag: v2.6.4-rc1~27^2^2~26 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=8ba2e80283a54b5da351078dd304d33ab65df2db;p=history.git [PATCH] request_firmware(): fix attribute removal From: Manuel Estrada Sainz Based on patch and suggestions from Dmitry Torokhov - Don't remove attributes, they should be gone automatically. --- 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); }