Re: [patch] v2.5.22 - add wait queue function callback support

From: Benjamin LaHaise (bcrl@redhat.com)
Date: Mon Jun 17 2002 - 15:53:40 EST


On Mon, Jun 17, 2002 at 10:28:12PM +0200, Dave Jones wrote:
> On Mon, Jun 17, 2002 at 04:14:34PM -0400, Benjamin LaHaise wrote:
> > +#define add_wait_queue_cond(q, wait, cond) \
> > + ({ \
> > + unsigned long flags; \
> > + int _raced = 0; \
> > + wq_write_lock_irqsave(&(q)->lock, flags); \
>
> I thought we killed off wq_write_lock_irqsave 1-2 kernels ago ?

Ah, I didn't notice that as I've not reached the point of merging
everything into a working build -- I'd like to get some feedback
and comments on the mergable units as they become available, since
I'm rewriting a few portions to fix problems that experience with
the code revealed. Anyways, the patch below changes add_wait_queue_cond
to use spin_locks directly.

                -ben

diff -urN wq-func-v2.5.22.diff/include/linux/wait.h wq-func-v2.5.22-b.diff/include/linux/wait.h
--- wq-func-v2.5.22.diff/include/linux/wait.h Mon Jun 17 15:53:25 2002
+++ wq-func-v2.5.22-b.diff/include/linux/wait.h Mon Jun 17 16:46:23 2002
@@ -106,7 +106,7 @@
         ({ \
                 unsigned long flags; \
                 int _raced = 0; \
- wq_write_lock_irqsave(&(q)->lock, flags); \
+ spin_lock_irqsave(&(q)->lock, flags); \
                 (wait)->flags = 0; \
                 __add_wait_queue((q), (wait)); \
                 rmb(); \
@@ -114,7 +114,7 @@
                         _raced = 1; \
                         __remove_wait_queue((q), (wait)); \
                 } \
- wq_write_unlock_irqrestore(&(q)->lock, flags); \
+ spin_lock_irqrestore(&(q)->lock, flags); \
                 _raced; \
         })
 
-
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/



This archive was generated by hypermail 2b29 : Sun Jun 23 2002 - 22:00:14 EST