Re: [lm-sensors] [RFC][PATCH] hwmon:fix sparse warnings + error handling

From: Mark M. Hoffman
Date: Tue Aug 22 2006 - 07:32:19 EST


Hi Dmitry:

* Dmitry Torokhov <dtor@xxxxxxxxxxxxx> [2006-08-21 20:43:05 -0400]:
> On Monday 21 August 2006 04:04, Jean Delvare wrote:
> > > --- linux-work-clean/drivers/hwmon/w83627hf.c 2006-08-20 22:02:40.000000000 +0200
> > > +++ linux-work/drivers/hwmon/w83627hf.c 2006-08-20 22:27:14.000000000 +0200
> > > @@ -513,9 +513,21 @@ static DEVICE_ATTR(in0_max, S_IRUGO | S_
> > >
> > > #define device_create_file_in(client, offset) \
> > > do { \
> > > -device_create_file(&client->dev, &dev_attr_in##offset##_input); \
> > > -device_create_file(&client->dev, &dev_attr_in##offset##_min); \
> > > -device_create_file(&client->dev, &dev_attr_in##offset##_max); \
> > > + err = device_create_file(&client->dev, &dev_attr_in##offset##_input); \
> > > + if (err) {\
> > > + hwmon_device_unregister(data->class_dev); \
> > > + return err; \
> > > + } \
> > > + err = device_create_file(&client->dev, &dev_attr_in##offset##_min); \
> > > + if (err) {\
> > > + hwmon_device_unregister(data->class_dev); \
> > > + return err; \
> > > + } \
> > > + err = device_create_file(&client->dev, &dev_attr_in##offset##_max); \
> > > + if (err) {\
> > > + hwmon_device_unregister(data->class_dev); \
> > > + return err; \
> > > + } \
> > > } while (0)
> >
> > _Never_ use "return" in a macro. It's way too confusing for whoever will
> > read the code later.
> >
>
> Also I believe it is good practice to remove created attributes explicitely
> instead of relying on sysfs to do the cleanup - I beliee Greg was going to
> remove it from sysfs at some point of time...

Yep: the patches that are floating on the lm-sensors mailing list do fix this
also. Again, see here:

http://lists.lm-sensors.org/pipermail/lm-sensors/2006-August/017204.html

Regards,

--
Mark M. Hoffman
mhoffman@xxxxxxxxxxxxx

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/