For now, yes, we should mirror what is going to be in the 2.6.25 kernel
release. I see the split happening for 2.6.26. So I say leave this for
now, it adds support for users of these devices.
thanks,
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
It's not that big a of a deal and I'm not sure how much of a pain it
would be to change it, but if the end plan is to have it in the option.c
driver and it is a one line change we might just want to get it done
now?
-Kevin
On Donnerstag, 7. Februar 2008, Greg KH wrote:
> 2.6.24-stable review patch. If anyone has any objections, please let us know.
>
> ------------------
> From: Thomas Gleixner <tg...@linutronix.de>
>
> The exception fixup for the futex macros __futex_atomic_op1/2 and
> futex_atomic_cmpxchg_inatomic() is missing an entry when the lock
> prefix is replaced by a NOP via SMP alternatives.
>
> Chuck Ebert tracked this down from the information provided in:
> https://bugzilla.redhat.com/show_bug.cgi?id=429412
>
> A possible solution would be to add another fixup after the
> LOCK_PREFIX, so both the LOCK and NOP case have their own entry in the
> exception table, but it's not really worth the trouble.
>
> Simply replace LOCK_PREFIX with lock and keep those untouched by SMP
> alternatives.
>
> Signed-off-by: Thomas Gleixner <tg...@linutronix.de>
> Signed-off-by: Greg Kroah-Hartman <gre...@suse.de>
>
> ---
> include/asm-x86/futex_32.h | 6 +++---
> include/asm-x86/futex_64.h | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
This patch seems to break compilation on x86_64 (i386 builds fine).
[...]
CC kernel/time/tick-sched.o
LD kernel/time/built-in.o
CC kernel/futex.o
In file included from include/asm/futex.h:4,
from kernel/futex.c:59:
include/asm/futex_64.h: In function ‘futex_atomic_op_inuser’:
include/asm/futex_64.h:69: error: expected ‘:’ or ‘)’ before ‘lock’
include/asm/futex_64.h:69: error: stray ‘\’ in program
In file included from include/asm/futex.h:4,
from kernel/futex.c:59:
include/asm/futex_64.h:69:61: error: invalid suffix "b" on integer constant
include/asm/futex_64.h:69: error: stray ‘\’ in program
include/asm/futex_64.h:69: error: stray ‘\’ in program
include/asm/futex_64.h:72: error: expected ‘:’ or ‘)’ before ‘lock’
include/asm/futex_64.h:72: error: stray ‘\’ in program
include/asm/futex_64.h:72:63: error: invalid suffix "b" on integer constant
include/asm/futex_64.h:72: error: stray ‘\’ in program
include/asm/futex_64.h:72: error: stray ‘\’ in program
include/asm/futex_64.h:75: error: expected ‘:’ or ‘)’ before ‘lock’
include/asm/futex_64.h:75: error: stray ‘\’ in program
include/asm/futex_64.h:75:62: error: invalid suffix "b" on integer constant
include/asm/futex_64.h:75: error: stray ‘\’ in program
include/asm/futex_64.h:75: error: stray ‘\’ in program
include/asm/futex_64.h:51: warning: unused variable ‘tem’
make[1]: *** [kernel/futex.o] Fehler 1
make: *** [kernel] Fehler 2
Tested on current debian-amd64/ unstable.
ii binutils 2.18.1~cvs20080103-1 The GNU assembler, linker and binary utiliti
ii gcc-4.2 4.2.3-1 The GNU C compiler
ii gcc-4.2-base 4.2.3-1 The GNU Compiler Collection (base package)
[...]
> --- a/include/asm-x86/futex_64.h
> +++ b/include/asm-x86/futex_64.h
> @@ -27,7 +27,7 @@
> "1: movl %2, %0\n\
> movl %0, %3\n" \
> insn "\n" \
> -"2: " LOCK_PREFIX "cmpxchgl %3, %2\n\
> +"2: "lock cmpxchgl %3, %2\n\
> jnz 1b\n\
> 3: .section .fixup,\"ax\"\n\
> 4: mov %5, %1\n\
> @@ -62,7 +62,7 @@ futex_atomic_op_inuser (int encoded_op,
> __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
> break;
> case FUTEX_OP_ADD:
> - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
> + __futex_atomic_op1("lock xaddl %0, %2", ret, oldval,
> uaddr, oparg);
> break;
> case FUTEX_OP_OR:
> @@ -101,7 +101,7 @@ futex_atomic_cmpxchg_inatomic(int __user
> return -EFAULT;
>
> __asm__ __volatile__(
> - "1: " LOCK_PREFIX "cmpxchgl %3, %1 \n"
> + "1: lock cmpxchgl %3, %1 \n"
>
> "2: .section .fixup, \"ax\" \n"
> "3: mov %2, %0 \n"
Regards
Stefan Lippers-Hollmann
The -stable releases mirror what is in the upstream kernel trees, so I'd
like to keep these the same for now, if at all possible.
I'd also like to have users hardware at least work today, which this
patch does, instead of forcing them to wait 3-4 months for the next
kernel release, for something as simple as adding a device id.
But, if you send me a patch for upstream, that just moves these device
ids over to the option driver, I'll be glad to put it in the next
-stable release as well, which is what I think would be the best overall
option.
thanks,
greg k-h
Ugh, my x86-64 assember knowledge sucks and I don't see how to easily
fix this, so I'll drop it for now and wait for Thomas to send a new
patch for the next .24 -stable release.
thanks a lot for the report,
Extra quote, should be:
+"2: lock cmpxchgl %3, %2\n\