Re: [PATCH][M68K] implement futex.h to support userspace robust futexes and PI mutexes
Geert Uytterhoeven <[email protected]>
| Newsgroups | gmane.linux.ports.m68k,gmane.linux.uclinux.devel |
|---|---|
| Message-ID | <CAMuHMdVUtwF-fwvg0-cMVKA9+okcZcW+m-LhUXv+riEBt_hj0w@mail.gmail.com> |
On Fri, May 17, 2013 at 2:05 PM, Mikael Pettersson <[email protected]> wrote: > > > --- linux-3.8/arch/m68k/include/asm/futex.h.~1~ 1970-01-01 01:00:00.000000000 +0100 > > > +++ linux-3.8/arch/m68k/include/asm/futex.h 2013-02-20 22:07:23.459917612 +0100 > > > @@ -0,0 +1,94 @@ > > > +#ifndef _ASM_M68K_FUTEX_H > > > +#define _ASM_M68K_FUTEX_H > > > + > > > +#ifdef __KERNEL__ > > > +#if !defined(CONFIG_MMU) > > > +#include <asm-generic/futex.h> > > > +#else /* CONFIG_MMU */ > > > > Why would you not use the version below on nommu? > > It doesn't seem to have any real dependencies on MMU support? > > What am I missing? > > The only reason I don't handle no-MMU is that I don't know how much > no-MMU butchers the semantics of the various primitives (mainly the > user-space accessors). The userspace accessors shouldn't matter much, I think. > Does no-MMU pagefault_disable() disable preemption? This code > relies on that. It seems it does. > > > +#include <linux/futex.h> > > > +#include <linux/uaccess.h> > > > +#include <asm/errno.h> > > > + > > > +static inline int > > > +futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, > > > + u32 oldval, u32 newval) > > > +{ > > > + u32 val; > > > + > > > + if (unlikely(get_user(val, uaddr) != 0)) > > > + return -EFAULT; > > > + > > > + if (val == oldval && unlikely(put_user(newval, uaddr) != 0)) > > > + return -EFAULT; > > > + > > > + *uval = val; > > > + > > > + return 0; > > > +} > > > > This is purely generic, so it could move to the asm-generic version, > > also fixing blackfin, c6x, metag, openrisc, um, unicore32, and xtensa? > > Yes it should be put somewhere generic, but I don't want to have to > investigate each and every arch to guess if they can safely use this > version or not. I'd rather put this somewhere alongside the stub futex.h > and have other archs opt-in at the discretion of their maintainers. Anyway, the m68k version is now in mainline, so I'll let the uClinux people decide the rest... Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected] In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds