Re: [PATCH -rt 3/5] asm/local.h cmpxchg

Daniel Walker
2007-07-14T17:09:12Z

On Sat, 2007-07-14 at 19:57 +0200, Peter Zijlstra wrote:
> ===================================================================
> ---
> linux-2.6.22-rc6-mm1.orig/include/asm-generic/local.h 2007-07-12
> 19:44:18.000000000 -0700
> +++ linux-2.6.22-rc6-mm1/include/asm-generic/local.h 2007-07-12
> 19:44:57.000000000 -0700
> @@ -46,13 +46,34 @@ typedef struct
> #define local_add_unless(l, a, u) atomic_long_add_unless((&(l)->a),
> (a), (u))
> #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
>
> -/* Non-atomic variants, ie. preemption disabled and won't be touched
> - * in interrupt, etc. Some archs can optimize this case well. */
> +/*
> + * Establish a state necessary for __local_xx functions to work.
> + */
> +#define __local_begin(flags) local_irq_disable(flags)

Did you mean local_irq_save(flags)? local_irq_disable() doesn't take any
arguments.

Daniel