diff --git a/kernel/chips/smsc47m1.c b/kernel/chips/smsc47m1.c index 216e0e60..11574277 100644 --- a/kernel/chips/smsc47m1.c +++ b/kernel/chips/smsc47m1.c @@ -324,13 +324,17 @@ static int smsc47m1_read_value(struct i2c_client *client, u8 reg) { int res; + down(&(((struct smsc47m1_data *) (client->data))->lock)); res = inb_p(client->addr + reg); + up(&(((struct smsc47m1_data *) (client->data))->lock)); return res; } static int smsc47m1_write_value(struct i2c_client *client, u8 reg, u8 value) { + down(&(((struct smsc47m1_data *) (client->data))->lock)); outb_p(value, client->addr + reg); + up(&(((struct smsc47m1_data *) (client->data))->lock)); return 0; }