Re: 2.6.21-mm1 -- x86 verify_cpu.S compile failure

Andy Whitcroft
2007-05-10T08:34:18Z

Andy Whitcroft wrote:
> Andi Kleen wrote:
>> On Tue, May 08, 2007 at 10:46:20AM +0100, Andy Whitcroft wrote:
>>> We are seeing the following compile error on older x86 installs:
>>>
>>> arch/i386/kernel/verify_cpu.S: Assembler messages:
>>> arch/i386/kernel/verify_cpu.S:13: Error: `(%esp)' is
>>> not a valid 16 bit base/index expression
>>>
>>> Seems to come from:
>>>
>>> x86_64-mm-i386-verify-cpu
>>>
>>> Compiler:
>>>
>>> gcc version 3.3.4 (Debian 1:3.3.4-3)
>> Your compiler must be a brother in spirit of Andrew's vaio.
>>
>> Does this patch help?
>>
>> -Andi
>>
>>
>> Index: linux/arch/i386/kernel/verify_cpu.S
>> ===================================================================
>> --- linux.orig/arch/i386/kernel/verify_cpu.S
>> +++ linux/arch/i386/kernel/verify_cpu.S
>> @@ -10,7 +10,9 @@ verify_cpu:
>>
>> #if CONFIG_X86_MINIMUM_CPU_MODEL >= 4
>> pushfl
>> - orl $(1<<18),(%esp) # try setting AC
>> + pop %eax
>> + orl $(1<<18),%eax # try setting AC
>> + push %eax
>> popfl
>> pushfl
>> popl %eax
>>
>>
>
> Yep that gets us past the compile problems. Of course she then blows up
> cause SLUB does not work on x86 in that version ... but ...
>
> Acked-by: Andy Whitcroft <apw@shadowen.org>

I note that this problem is also up in mainline, since 2.6.21-git6.
Andi can you push this fix up too?

-apw