Quoting myself (again): > First, there is no lock on read/write. There is a lock for the update > function, but that's about all. It's obviously not sufficent. Usually, > drivers have a second lock for read and write operations. OK, I've added this to the 2.4 driver. Please test if you can. Please add locking to your 2.6 driver as well. It should be really easy, just like: struct smsc47m1_data *data = i2c_get_clientdata(client); down(&data->lock); <read or write> up(&data->lock); in both smsc47m1_read_value and smsc47m1_write_value. Thanks. -- Jean Delvare http://khali.linux-fr.org/