It has no callers, is using the non-existent spin_lock_irqrestore(), and is obviously very untested. Kill. include/linux/wait.h | 16 ---------------- 1 files changed, 16 deletions(-) diff -puN include/linux/wait.h~remove-add_wait_queue_cond include/linux/wait.h --- 25/include/linux/wait.h~remove-add_wait_queue_cond 2003-08-23 15:17:35.000000000 -0700 +++ 25-akpm/include/linux/wait.h 2003-08-23 15:17:35.000000000 -0700 @@ -220,22 +220,6 @@ static inline void remove_wait_queue_loc __remove_wait_queue(q, wait); } -#define add_wait_queue_cond(q, wait, cond) \ - ({ \ - unsigned long flags; \ - int _raced = 0; \ - spin_lock_irqsave(&(q)->lock, flags); \ - (wait)->flags = 0; \ - __add_wait_queue((q), (wait)); \ - rmb(); \ - if (!(cond)) { \ - _raced = 1; \ - __remove_wait_queue((q), (wait)); \ - } \ - spin_lock_irqrestore(&(q)->lock, flags); \ - _raced; \ - }) - /* * These are the old interfaces to sleep waiting for an event. * They are racy. DO NOT use them, use the wait_event* interfaces above. _