Messages in this thread | | | Date | Sat, 21 Feb 2004 09:18:14 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: kernel/microcode.c error from new 64bit code |
| |
On Sat, 21 Feb 2004, Pavel Machek wrote: > > > + wrmsr(MSR_IA32_UCODE_WRITE, > > + (unsigned long) uci->mc->bits, > > + (unsigned long) uci->mc->bits >> 16 >> 16); > ~~~~~~~~~~~~ > > I see what you are doing, but this is evil. At least comment /* ">> 32" > is undefined on i386 */ ?
Sorry, but you're wrong.
">> 32" is underfined PERIOD! It has nothing to do with x86, it's a C standards issue. It's undefined on any 32-bit architecture. (shifting by the wordsize or bigger is simply not a defined C operation).
The above is not evil. The above is the standard way of doing this in C if you know the word-size is 32-bits or bigger.
Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |