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

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

 



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... 

-- 
Dmitry




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

  Powered by Linux