diff options
author | Jiri Kosina <jkosina@suse.cz> | 2007-11-28 19:22:03 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-11-29 12:24:54 -0500 |
commit | 8853c202b4a91713dbfb4d9b6e1c87cc2aa12392 (patch) | |
tree | a6c9621d3067eebc17c2ce53fa45e7513ee832a6 /include/linux/rtc.h | |
parent | 08b633070ad5fa17a837428a601c32cf3db6aafd (diff) |
RTC: convert mutex to bitfield
RTC code is using mutex to assure exclusive access to /dev/rtc. This is
however wrong usage, as it leaves the mutex locked when returning into
userspace, which is unacceptable.
Convert rtc->char_lock into bit operation.
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/rtc.h')
-rw-r--r-- | include/linux/rtc.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/rtc.h b/include/linux/rtc.h index 6d5e4a46781e..f2d0d1527721 100644 --- a/include/linux/rtc.h +++ b/include/linux/rtc.h | |||
@@ -133,6 +133,9 @@ struct rtc_class_ops { | |||
133 | #define RTC_DEVICE_NAME_SIZE 20 | 133 | #define RTC_DEVICE_NAME_SIZE 20 |
134 | struct rtc_task; | 134 | struct rtc_task; |
135 | 135 | ||
136 | /* flags */ | ||
137 | #define RTC_DEV_BUSY 0 | ||
138 | |||
136 | struct rtc_device | 139 | struct rtc_device |
137 | { | 140 | { |
138 | struct device dev; | 141 | struct device dev; |
@@ -145,7 +148,7 @@ struct rtc_device | |||
145 | struct mutex ops_lock; | 148 | struct mutex ops_lock; |
146 | 149 | ||
147 | struct cdev char_dev; | 150 | struct cdev char_dev; |
148 | struct mutex char_lock; | 151 | unsigned long flags; |
149 | 152 | ||
150 | unsigned long irq_data; | 153 | unsigned long irq_data; |
151 | spinlock_t irq_lock; | 154 | spinlock_t irq_lock; |