Messages in this thread | | | From | Mike Frysinger <> | Date | Fri, 3 Jul 2009 04:14:05 -0400 | Subject | making asm-generic/futex.h completely usable |
| |
ive been reading up on futexes of late and have been poking around the futex kernel pieces to see what is needed to get Blackfin working with it.
Blackfin falls into the "no hardware atomic instructions" category as can easily be seen in our atomic.h: disable interrupts, do load/stores, restore interrupts. my understanding of the futex_atomic_op_inuser() function is that this runs in process context, so this same interrupt trick should work fine. which leads me to wonder why doesnt the asm-generic/futex.h header already take this approach ?
seems to me that the SuperH implementation fits the bill nicely. their arch/sh/include/asm/futex-irq.h looks like it could be literally straight copied into asm-generic/futex.h thus making it fully functional for everyone by default.
also, the futex_atomic_op_inuser() function itself seems to largely be copy & paste between architectures ... the only differences are in the atomic functions called by FUTEX_OP_XXX. so perhaps the structure of the header should follow that of asm-generic/uaccess.h in that arches can override specific functions while still getting the rest for free ? -mike
| |