Re: [PATCH 1/2] x86: stop using PER_CPU_VAR(kernel_stack)

From: Denys Vlasenko
Date: Mon Mar 23 2015 - 13:51:20 EST


On 03/23/2015 06:45 PM, Steven Rostedt wrote:
> On Mon, 23 Mar 2015 18:38:09 +0100
> Denys Vlasenko <dvlasenk@xxxxxxxxxx> wrote:
>
>>> Can we do a:
>>>
>>> #define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
>>
>> We already do something similar:
>>
>> static inline unsigned long current_top_of_stack(void)
>> {
>> #ifdef CONFIG_X86_64
>> return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
>> #else
>> /* sp0 on x86_32 is special in and around vm86 mode. */
>> return this_cpu_read_stable(cpu_current_top_of_stack);
>> #endif
>> }
>
> So can we then have:
>
> #ifdef __ASSEMBLY__
> # define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
> #else
> # define cpu_current_top_of_stack (cpu_tss.x86_tss.sp0)
> #endif
>
> And get rid of that if statement in the static inline?

I prefer less macro indirection in assembly code,
but I won't object too strongly if this would be done.

It's up to other x86 maintainers to agree - I'm touching
the code recently changed by Andy, he may see the way forward
somewhat differently.

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