H. Peter Anvin wrote: > On 06/25/2010 02:20 AM, Lai Jiangshan wrote: >>> x86, alternatives: Use 16-bit numbers for cpufeature index >>> >>> We already have cpufeature indicies above 255, so use a 16-bit number >>> for the alternatives index. This consumes a padding field and so >>> doesn't add any size, but it means that abusing the padding field to >>> create assembly errors on overflow no longer works. We can retain the >>> test simply by redirecting it to the .discard section, however. >>> >> My machine hits "invalid opcode" at *prepare_to_copy+0x79, >> and it can't boot up. >> >> (gdb) l *prepare_to_copy+0x79 >> 0xc0101789 is in prepare_to_copy (/home/njubee/work/linux-2.6-tip/arch/x86/include/asm/xsave.h:118). >> 113 >> 114 static inline void fpu_xsave(struct fpu *fpu) >> 115 { >> 116 /* This, however, we can work around by forcing the compiler to select >> 117 an addressing mode that doesn't require extended registers. */ >> 118 __asm__ __volatile__(".byte " REX_PREFIX "0x0f,0xae,0x27" >> 119 : : "D" (&(fpu->state->xsave)), >> 120 "a" (-1), "d"(-1) : "memory"); >> 121 } >> 122 #endif >> > > There are no alternatives in that code, at all... so it makes me really > wonder what is going on. One possibility, of course, is that one > alternative has ended up with the wrong address. Will look... > There is alternative in use_xsave(). use_xsave() should return false in my system, but it returns true after this patch applied. >> Does this patch change the return value of "use_xsave()" -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |