* [PATCH] hwmon/abituguru: handle sysfs errors
@ 2006-10-10 6:53 Jeff Garzik
2006-10-10 7:27 ` Hans de Goede
0 siblings, 1 reply; 9+ messages in thread
From: Jeff Garzik @ 2006-10-10 6:53 UTC (permalink / raw)
To: j.w.r.degoede, khali, Andrew Morton, LKML
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;
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 6:53 [PATCH] hwmon/abituguru: handle sysfs errors Jeff Garzik
@ 2006-10-10 7:27 ` Hans de Goede
2006-10-10 9:08 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Hans de Goede @ 2006-10-10 7:27 UTC (permalink / raw)
To: Jeff Garzik; +Cc: khali, Andrew Morton, LKML
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;
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 7:27 ` Hans de Goede
@ 2006-10-10 9:08 ` Jean Delvare
2006-10-10 9:18 ` Hans de Goede
0 siblings, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2006-10-10 9:08 UTC (permalink / raw)
To: Hans de Goede; +Cc: Jeff Garzik, Andrew Morton, LKML
Hi Hans, 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!
The patch isn't wrong per se, but it could be made more simple, and is
incomplete in comparison to what was done for all other hardware
monitoring drivers:
* We want to create all the files before registering with the hwmon
class, this closes a race condition.
* We want to delete all the device files at regular cleanup time (after
unregistering with the hwmon class).
* It's OK to call device_create_file() on a non-existent file, so the
error path can be simplified.
I'd like the abituguru driver to behave the same as all other hardware
monitoring drivers to lower the maintenance effort. Can either you
or Jeff work up a compliant patch?
Thanks.
> 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;
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 9:08 ` Jean Delvare
@ 2006-10-10 9:18 ` Hans de Goede
2006-10-10 9:34 ` Jean Delvare
2006-12-02 11:36 ` Jean Delvare
0 siblings, 2 replies; 9+ messages in thread
From: Hans de Goede @ 2006-10-10 9:18 UTC (permalink / raw)
To: Jean Delvare; +Cc: Jeff Garzik, Andrew Morton, LKML
Jean Delvare wrote:
> Hi Hans, 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!
>
> The patch isn't wrong per se, but it could be made more simple, and is
> incomplete in comparison to what was done for all other hardware
> monitoring drivers:
>
> * We want to create all the files before registering with the hwmon
> class, this closes a race condition.
OK
> * We want to delete all the device files at regular cleanup time (after
> unregistering with the hwmon class).
Is this really nescesarry? AFAIK the files get deleted when the device gets deleted.
> * It's OK to call device_create_file() on a non-existent file, so the
> error path can be simplified.
>
?? You mean device_remove_file I assume?
> I'd like the abituguru driver to behave the same as all other hardware
> monitoring drivers to lower the maintenance effort. Can either you
> or Jeff work up a compliant patch?
>
I understand Jeff any chance you can do a new revision of your patch? Otherwise I'll take care of it as time permits.
Regards,
Hans
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 9:18 ` Hans de Goede
@ 2006-10-10 9:34 ` Jean Delvare
2006-10-12 4:31 ` Dmitry Torokhov
2006-12-02 11:36 ` Jean Delvare
1 sibling, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2006-10-10 9:34 UTC (permalink / raw)
To: Hans de Goede; +Cc: Jeff Garzik, Andrew Morton, LKML
Hans,
> > * We want to delete all the device files at regular cleanup time (after
> > unregistering with the hwmon class).
>
> Is this really nescesarry? AFAIK the files get deleted when the device
> gets deleted.
The point is that the device shouldn't be deleted if we were following
the device driver model. After all the uGuru device exists in your
system before the abituguru driver is loaded, and is still there after
the driver is unloaded.
Now I agree that for now it won't make a difference, be we are
preparing for the future, and all other hardware monitoring drivers
were updated that way already.
> > * It's OK to call device_create_file() on a non-existent file, so the
> > error path can be simplified.
>
> ?? You mean device_remove_file I assume?
Oops, yes, that was a typo, sorry.
Thanks,
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 9:34 ` Jean Delvare
@ 2006-10-12 4:31 ` Dmitry Torokhov
2006-10-12 15:42 ` Jean Delvare
0 siblings, 1 reply; 9+ messages in thread
From: Dmitry Torokhov @ 2006-10-12 4:31 UTC (permalink / raw)
To: Jean Delvare; +Cc: Hans de Goede, Jeff Garzik, Andrew Morton, LKML
On Tuesday 10 October 2006 05:34, Jean Delvare wrote:
> Hans,
>
> > > * We want to delete all the device files at regular cleanup time (after
> > > unregistering with the hwmon class).
> >
> > Is this really nescesarry? AFAIK the files get deleted when the device
> > gets deleted.
>
> The point is that the device shouldn't be deleted if we were following
> the device driver model. After all the uGuru device exists in your
> system before the abituguru driver is loaded, and is still there after
> the driver is unloaded.
>
> Now I agree that for now it won't make a difference, be we are
> preparing for the future, and all other hardware monitoring drivers
> were updated that way already.
>
> > > * It's OK to call device_create_file() on a non-existent file, so the
> > > error path can be simplified.
> >
> > ?? You mean device_remove_file I assume?
>
> Oops, yes, that was a typo, sorry.
>
I know I sound like a roken record but this driver would benefit from
using attribute_group.
--
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-12 4:31 ` Dmitry Torokhov
@ 2006-10-12 15:42 ` Jean Delvare
2006-10-16 3:56 ` Dmitry Torokhov
0 siblings, 1 reply; 9+ messages in thread
From: Jean Delvare @ 2006-10-12 15:42 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Hans de Goede, Jeff Garzik, Andrew Morton, LKML
Hi Dmitry,
Dmitry Torokhov wrote:
> I know I sound like a roken record but this driver would benefit from
> using attribute_group.
What about sending a patch then?
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-12 15:42 ` Jean Delvare
@ 2006-10-16 3:56 ` Dmitry Torokhov
0 siblings, 0 replies; 9+ messages in thread
From: Dmitry Torokhov @ 2006-10-16 3:56 UTC (permalink / raw)
To: Jean Delvare; +Cc: Hans de Goede, Jeff Garzik, Andrew Morton, LKML
On Thursday 12 October 2006 11:42, Jean Delvare wrote:
> Hi Dmitry,
>
> Dmitry Torokhov wrote:
> > I know I sound like a roken record but this driver would benefit from
> > using attribute_group.
>
> What about sending a patch then?
>
Sorry, spoke too soon. Because the driver uses non-satic attributes
converting it to use attribute_group would probably be messier than
the present code.
--
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] hwmon/abituguru: handle sysfs errors
2006-10-10 9:18 ` Hans de Goede
2006-10-10 9:34 ` Jean Delvare
@ 2006-12-02 11:36 ` Jean Delvare
1 sibling, 0 replies; 9+ messages in thread
From: Jean Delvare @ 2006-12-02 11:36 UTC (permalink / raw)
To: Hans de Goede; +Cc: Jeff Garzik, Andrew Morton, LKML
Hans,
On Tue, 10 Oct 2006 11:18:33 +0200, Hans de Goede wrote:
> Jean Delvare wrote:
> > The patch isn't wrong per se, but it could be made more simple, and is
> > incomplete in comparison to what was done for all other hardware
> > monitoring drivers:
> >
> > * We want to create all the files before registering with the hwmon
> > class, this closes a race condition.
> > * We want to delete all the device files at regular cleanup time (after
> > unregistering with the hwmon class).
> > * It's OK to call device_remove_file() on a non-existent file, so the
> > error path can be simplified.
> >
> > I'd like the abituguru driver to behave the same as all other hardware
> > monitoring drivers to lower the maintenance effort. Can either you
> > or Jeff work up a compliant patch?
>
> I understand Jeff any chance you can do a new revision of
> your patch? Otherwise I'll take care of it as time permits.
I'm still waiting for this patch. It'd be nice to have the abituguru
driver fixed in 2.6.20.
Thanks,
--
Jean Delvare
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-12-02 11:36 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-10 6:53 [PATCH] hwmon/abituguru: handle sysfs errors Jeff Garzik
2006-10-10 7:27 ` Hans de Goede
2006-10-10 9:08 ` Jean Delvare
2006-10-10 9:18 ` Hans de Goede
2006-10-10 9:34 ` Jean Delvare
2006-10-12 4:31 ` Dmitry Torokhov
2006-10-12 15:42 ` Jean Delvare
2006-10-16 3:56 ` Dmitry Torokhov
2006-12-02 11:36 ` Jean Delvare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox