Re: [RFC 6/7] x86: Move kernel_fpu_using to asm/i387.h

From: H. Peter Anvin
Date: Wed Jun 17 2009 - 13:27:31 EST

Ingo Molnar wrote:
>> +static inline int kernel_fpu_using(void)
>> +{
>> + if (in_interrupt() && !(read_cr0() & X86_CR0_TS))
>> + return 1;
>> + return 0;
>> +}
>> +
> Looks sane to me. Herbert, do you ack it?

Although I have to say, the structure of:

if (boolean test)
return 1;
return 0;

... truly was hit with the ugly stick. It really should be:

static inline bool kernel_fpu_using(void)
return in_interrupt() && !(read_cr0() && C86_CR0_TS);

Huang: if I recall correctly, these functions were originally designed
to deal with the fact that VIA processors generate spurious #TS faults
due to broken design of the Padlock instructions. The AES and PCLMUL
instructions actually use SSE registers and so will require different


H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at