linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / kernel / wait.c
index 5cdf169..791681c 100644 (file)
@@ -33,35 +33,13 @@ void fastcall add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait)
 }
 EXPORT_SYMBOL(add_wait_queue_exclusive);
 
-int fastcall remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait)
+void fastcall remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait)
 {
        unsigned long flags;
-       struct list_head *list;
-       int seen, retval;
 
        spin_lock_irqsave(&q->lock, flags);
-       list = &q->task_list;
-       seen = 0;
-       retval = -1;
-
-       do {
-               struct list_head *next;
-               if (list == &wait->task_list)
-                       seen++;
-               next = list->next;
-               if (next->prev != list) {
-                       seen += 2;
-                       break;
-               }
-               list = next;
-       } while (list != &q->task_list);
-
-       if (seen == 1) {
-               __remove_wait_queue(q, wait);
-               retval = 0;
-       }
+       __remove_wait_queue(q, wait);
        spin_unlock_irqrestore(&q->lock, flags);
-       return retval;
 }
 EXPORT_SYMBOL(remove_wait_queue);