Re: kernel/microcode.c error from new 64bit code

From: Linus Torvalds
Date: Sun Feb 22 2004 - 15:29:26 EST




On Sun, 22 Feb 2004, H. Peter Anvin wrote:
>
> The above code is just plain wrong: the cast to (unsigned long) has
> higher precedence than the shift, so on i386 (which I presume this is)
> it will become an unsigned long, and the shifts will bring it down to
> zero.

WHICH IS WHAT WE WANT. On x86.

But ..

> You might as well write zero if that's what you mean.

No. Because on x86-64 it is NOT zero. Because there "unsigned long" is
64-bit, and it results in the high 32 bits. Which is, again, exactly what
we want.

Guys, give it up. The code is not only already committed, it's simply the
best way to do what it does.

Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/