Messages in this thread | | | Date | Mon, 23 Mar 2015 18:51:11 +0100 | From | Denys Vlasenko <> | Subject | Re: [PATCH 1/2] x86: stop using PER_CPU_VAR(kernel_stack) |
| |
On 03/23/2015 06:45 PM, Steven Rostedt wrote: > On Mon, 23 Mar 2015 18:38:09 +0100 > Denys Vlasenko <dvlasenk@redhat.com> 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.
| |