[RFC][PATCH] hwmon:fix sparse warnings + error handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dmitry:

* Dmitry Torokhov <dtor at insightbb.com> [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 at lightlink.com





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux