Messages in this thread Patch in this message | | | Date | Fri, 22 Sep 2006 15:29:53 +0900 | From | Hirokazu Takata <> | Subject | [PATCH] m32r: Revise __raw_read_trylock() |
| |
Hi,
Matthew Wilcox pointed out that generic__raw_read_trylock() is unfit for use.
Here is a patch to fix __raw_read_trylock() for m32r. It is taken from the i386 implementation.
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org> Cc: Matthew Wilcox <matthew@wil.cx> --- include/asm-m32r/spinlock.h | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/include/asm-m32r/spinlock.h b/include/asm-m32r/spinlock.h index f94c1a6..78205f0 100644 --- a/include/asm-m32r/spinlock.h +++ b/include/asm-m32r/spinlock.h @@ -298,7 +298,15 @@ #endif /* CONFIG_CHIP_M32700_TS1 */ ); } -#define __raw_read_trylock(lock) generic__raw_read_trylock(lock) +static inline int __raw_read_trylock(raw_rwlock_t *lock) +{ + atomic_t *count = (atomic_t*)lock; + atomic_dec(count); + if (atomic_read(count) >= 0) + return 1; + atomic_inc(count); + return 0; +} static inline int __raw_write_trylock(raw_rwlock_t *lock) { -- Hirokazu Takata <takata@linux-m32r.org> Linux/M32R Project: http://www.linux-m32r.org/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |