Re: Linux 2.6.32-rc1

Linus Torvalds
2009-09-29T21:19:06Z

On Tue, 29 Sep 2009, Eric Dumazet wrote:
>
> Checking this commit, I believe problem comes from cmpxchg(), which doesnt
> handle 64 bit on X86_32 (no compilation error, and null operation :( )

Wow. That's broken. Very nasty silent failure.

> 1) Use cmpxchg64()

Clearly better than what we have now, although cmpxchg64 does result is
some really disgusting code. We will use a bare CMPXCHG64 only if you
compile for PAE right now - so even if you tell Kconfig that you want to
compile for a modern CPU, we won't be doing that whole cmpxchg64b thing
directly, we'll inline some really disgusting code.

So we really need to fix that up before it would be acceptable to use
cmpxchg64().

And regardless, we should fix the silent cmpxchg failure, even if it's
just a link-time failure or something. 64-bit things in the kernel used to
be rare and special, but they aren't any more.

Ingo, Peter, comments?

Linus