diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-22 15:08:34 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-22 15:08:34 -0700 |
commit | eaa8568901b3164197ce727c4c9b4067383e526c (patch) | |
tree | 6dc48f016cfff6e1e5ce9278be819e1b651027b0 /drivers/w1/slaves/w1_therm.c | |
parent | 6c763eb9ead86c612492b59287b36c0dcf7d09b1 (diff) | |
parent | c6976a4eb3c9ead165de950899b45db0840b8e30 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/w1-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/w1-2.6:
[PATCH] w1: warning fix
[PATCH] w1: clean up W1_CON dependency.
[PATCH] drivers/w1/w1.c: fix a compile error
[PATCH] W1: fix dependencies of W1_SLAVE_DS2433_CRC
[PATCH] W1: possible cleanups
[PATCH] W1: cleanups
[PATCH] w1 exports
[PATCH] w1: Use mutexes instead of semaphores.
[PATCH] w1: Make w1 connector notifications depend on connector.
[PATCH] w1: netlink: Mark netlink group 1 as unused.
[PATCH] w1: Move w1-connector definitions into linux/include/connector.h
[PATCH] w1: Userspace communication protocol over connector.
[PATCH] w1: Replace dscore and ds_w1_bridge with ds2490 driver.
[PATCH] w1: Added default generic read/write operations.
Diffstat (limited to 'drivers/w1/slaves/w1_therm.c')
-rw-r--r-- | drivers/w1/slaves/w1_therm.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c index 536d16d78de..5372cfcbd05 100644 --- a/drivers/w1/slaves/w1_therm.c +++ b/drivers/w1/slaves/w1_therm.c @@ -29,7 +29,6 @@ #include <linux/delay.h> #include "../w1.h" -#include "../w1_io.h" #include "../w1_int.h" #include "../w1_family.h" @@ -166,12 +165,7 @@ static ssize_t w1_therm_read_bin(struct kobject *kobj, char *buf, loff_t off, si u8 rom[9], crc, verdict; int i, max_trying = 10; - atomic_inc(&sl->refcnt); - smp_mb__after_atomic_inc(); - if (down_interruptible(&sl->master->mutex)) { - count = 0; - goto out_dec; - } + mutex_lock(&sl->master->mutex); if (off > W1_SLAVE_DATA_SIZE) { count = 0; @@ -234,10 +228,7 @@ static ssize_t w1_therm_read_bin(struct kobject *kobj, char *buf, loff_t off, si count += sprintf(buf + count, "t=%d\n", w1_convert_temp(rom, sl->family->fid)); out: - up(&dev->mutex); -out_dec: - smp_mb__before_atomic_inc(); - atomic_dec(&sl->refcnt); + mutex_unlock(&dev->mutex); return count; } |