Messages in this thread Patch in this message |  | | | Date | Tue, 10 Oct 2006 09:27:21 +0200 | | From | Hans de Goede <> | | Subject | Re: [PATCH] hwmon/abituguru: handle sysfs errors |
Hi Jean, Jeff,
You (Jean) already mailed me about this and it was on my todo list, but I'm currently rather busy with work. So it looks like Jeff beat me to it.
Jeff's patch looks fine, please apply. Thanks Jeff!
Regards,
Hans
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Jeff Garzik <jeff@garzik.org>
--- drivers/hwmon/abituguru.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) 2b10f648c8ed965369976eb7925b922ee187ce21 diff --git a/drivers/hwmon/abituguru.c b/drivers/hwmon/abituguru.c index e5cb0fd..3ded982 100644 --- a/drivers/hwmon/abituguru.c +++ b/drivers/hwmon/abituguru.c @@ -1271,14 +1271,34 @@ static int __devinit abituguru_probe(str res = PTR_ERR(data->class_dev); goto abituguru_probe_error; } - for (i = 0; i < sysfs_attr_i; i++) - device_create_file(&pdev->dev, &data->sysfs_attr[i].dev_attr); - for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) - device_create_file(&pdev->dev, - &abituguru_sysfs_attr[i].dev_attr); + for (i = 0; i < sysfs_attr_i; i++) { + res = device_create_file(&pdev->dev, + &data->sysfs_attr[i].dev_attr); + if (res) { + for (j = 0; j < i; j++) + device_remove_file(&pdev->dev, + &data->sysfs_attr[j].dev_attr); + goto err_devreg; + } + } + for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) { + res = device_create_file(&pdev->dev, + &abituguru_sysfs_attr[i].dev_attr); + if (res) { + for (j = 0; j < i; j++) + device_remove_file(&pdev->dev, + &abituguru_sysfs_attr[j].dev_attr); + goto err_attr_i; + } + } return 0; +err_attr_i: + for (i = 0; i < sysfs_attr_i; i++) + device_remove_file(&pdev->dev, &data->sysfs_attr[i].dev_attr); +err_devreg: + hwmon_device_unregister(data->class_dev); abituguru_probe_error: kfree(data); return res; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |