Add changes from the Linux-2.6 tree.
[linux-2.6.git] / include / asm-parisc / semaphore.h
index f9ab172..d45827a 100644 (file)
@@ -40,24 +40,14 @@ struct semaphore {
        spinlock_t      sentry;
        int             count;
        wait_queue_head_t wait;
-#if WAITQUEUE_DEBUG
-       long __magic;
-#endif
 };
 
-#if WAITQUEUE_DEBUG
-# define __SEM_DEBUG_INIT(name) \
-               , (long)&(name).__magic
-#else
-# define __SEM_DEBUG_INIT(name)
-#endif
-
-#define __SEMAPHORE_INITIALIZER(name,count) \
-{ SPIN_LOCK_UNLOCKED, count, __WAIT_QUEUE_HEAD_INITIALIZER((name).wait) \
-       __SEM_DEBUG_INIT(name) }
-
-#define __MUTEX_INITIALIZER(name) \
-       __SEMAPHORE_INITIALIZER(name,1)
+#define __SEMAPHORE_INITIALIZER(name, n)                               \
+{                                                                      \
+       .sentry         = SPIN_LOCK_UNLOCKED,                           \
+       .count          = n,                                            \
+       .wait           = __WAIT_QUEUE_HEAD_INITIALIZER((name).wait)    \
+}
 
 #define __DECLARE_SEMAPHORE_GENERIC(name,count) \
        struct semaphore name = __SEMAPHORE_INITIALIZER(name,count)
@@ -95,9 +85,6 @@ asmlinkage void __up(struct semaphore * sem);
 
 extern __inline__ void down(struct semaphore * sem)
 {
-#if WAITQUEUE_DEBUG
-       CHECK_MAGIC(sem->__magic);
-#endif
        might_sleep();
        spin_lock_irq(&sem->sentry);
        if (sem->count > 0) {
@@ -111,9 +98,6 @@ extern __inline__ void down(struct semaphore * sem)
 extern __inline__ int down_interruptible(struct semaphore * sem)
 {
        int ret = 0;
-#if WAITQUEUE_DEBUG
-       CHECK_MAGIC(sem->__magic);
-#endif
        might_sleep();
        spin_lock_irq(&sem->sentry);
        if (sem->count > 0) {
@@ -131,10 +115,8 @@ extern __inline__ int down_interruptible(struct semaphore * sem)
  */
 extern __inline__ int down_trylock(struct semaphore * sem)
 {
-       int flags, count;
-#if WAITQUEUE_DEBUG
-       CHECK_MAGIC(sem->__magic);
-#endif
+       unsigned long flags;
+       int count;
 
        spin_lock_irqsave(&sem->sentry, flags);
        count = sem->count - 1;
@@ -150,10 +132,8 @@ extern __inline__ int down_trylock(struct semaphore * sem)
  */
 extern __inline__ void up(struct semaphore * sem)
 {
-       int flags;
-#if WAITQUEUE_DEBUG
-       CHECK_MAGIC(sem->__magic);
-#endif
+       unsigned long flags;
+
        spin_lock_irqsave(&sem->sentry, flags);
        if (sem->count < 0) {
                __up(sem);