Re: [PATCH v1 11/15] arm/futex: UP futex_atomic_op_inuser() relies on disabled preemption

David Hildenbrand
2015-05-13T07:38:31Z

> * David Hildenbrand | 2015-05-11 17:52:16 [+0200]:
>
> >The !CONFIG_SMP implementation of futex_atomic_op_inuser() seems to rely
> >on disabled preemption to guarantee mutual exclusion.
>
> Yes, this is what the code looks like. It is more the requirement for
> ldrex/strex opcodes which are ARMv6+ and so is SMP support (here).
> Documentation wise you could replace CONFIG_SMP by
> __LINUX_ARM_ARCH__ >= 6
> in a later patch if you like. This would be more in-sync with
> arch/arm/include/asm/cmpxchg.h :)
>
> Sebastian

Thanks, I'll include it in the next version.

So I assume the cleanest thing to do would be:

#if __LINUX_ARM_ARCH__ < 6
preempt_disable();
#endif

David