Re: [PATCH 2/2 v2] x86: make 32-bit "emergency stack" better documented

From: Brian Gerst
Date: Sat Mar 14 2015 - 13:24:32 EST


On Sat, Mar 14, 2015 at 12:00 PM, Pavel Machek <pavel@xxxxxx> wrote:
> Hi!
>
>> arch/x86/kernel/asm-offsets_32.c | 2 +-
>> arch/x86/kernel/cpu/common.c | 3 ++-
>> 3 files changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
>> index 48a61c1..9e65cf8 100644
>> --- a/arch/x86/include/asm/processor.h
>> +++ b/arch/x86/include/asm/processor.h
>> @@ -276,9 +276,9 @@ struct tss_struct {
>> unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
>>
>> /*
>> - * .. and then another 0x100 bytes for the emergency kernel stack:
>> + * and then space for temporary SYSENTER stack:
>> */
>> - unsigned long stack[64];
>> + unsigned long SYSENTER_stack[64];
>
> Would it make sense to make it unsigned char ...stack[256], like the comment said?
>
> Or is it supposed to be different size on 64bit, and comment was wrong?

It isn't used on 64-bit. MSR_IA32_SYSENTER_ESP is set to 0, and
tss->sp0 is read from the percpu segment instead of relative to the
stack pointer.

--
Brian Gerst
--
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/