[PATCH] i2c driver changes for 2.5.72

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

 



On Wed, Jun 18, 2003 at 10:25:57PM -0400, Mark M. Hoffman wrote:
> * Greg KH <greg at kroah.com> [2003-06-18 11:25:07 -0700]:
> > ChangeSet 1.1318.3.2, 2003/06/16 11:31:43-07:00, margitsw at t-online.de
> > 
> > [PATCH] I2C: lm85 fixups
> > 
> > OK Here's the patch which :
> > 1) Fixes the race conditions
> 
> <cut>
> 
> > @@ -437,10 +434,13 @@
> >  {
> >  	struct i2c_client *client = to_i2c_client(dev);
> >  	struct lm85_data *data = i2c_get_clientdata(client);
> > +	int	val;
> >  
> > -	int val = simple_strtol(buf, NULL, 10);
> > +	down(&data->update_lock);
> > +	val = simple_strtol(buf, NULL, 10);
> >  	data->fan_min[nr] = FAN_TO_REG(val);
> >  	lm85_write_value(client, LM85_REG_FAN_MIN(nr), data->fan_min[nr]);
> > +	up(&data->update_lock);
> >  	return count;
> >  }
> 
> Ugh.  Looks like this sort of fix is needed in every single chip
> driver in 2.5.  And the CVS chip drivers have the same problem.

Hm, wait, what are we trying to protect with this lock?  The data->
values?  Or access to the hardware?  Or something else?

thanks,

greg k-h



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

  Powered by Linux