Re: [PATCH][M68K] implement futex.h to support userspace robust futexes and PI mutexes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 17, 2013 at 2:05 PM, Mikael Pettersson <mikpe@xxxxxxxx> 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 -- geert@xxxxxxxxxxxxxx

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
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux