Re: [PATCH 13/13] x86_32: make percpu symbols zerobased on SMP

From: Rusty Russell
Date: Tue Jan 13 2009 - 19:19:20 EST


On Tuesday 13 January 2009 21:08:17 Tejun Heo wrote:
> This patch makes percpu symbols zerobased on x86_32 SMP by using
> PERCPU_VADDR() with 0 vaddr in vmlinux_32.lds.S. A new PHDR is added
> as existing ones cannot contain sections near address zero.
...
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Mike Travis <travis@xxxxxxx>
> ---
> arch/x86/kernel/cpu/common.c | 8 ++++++++
> arch/x86/kernel/head_32.S | 37 ++++++++++++++++++++++++++++++++++---
> arch/x86/kernel/setup_percpu.c | 4 ----
> arch/x86/kernel/vmlinux_32.lds.S | 16 +++++++++++++++-
> 4 files changed, 57 insertions(+), 8 deletions(-)

Hmm, the only reason for this change is to unify with 64-bit, yes? Yet it
doesn't actually win us anything on that front, as this diffstat shows.

If gcc's -mcmodel=kernel had used a weak symbol for the offset of the stack
canary, we would have been happy. Unfortunately generic per-cpu and x86-64
PDA were developed separately, so noone realize the problem until too late.

The basic series looks good: it will clash with my per-cpu work (mainly
because I remove the per_cpu__ prefix) in a purely-textual way though.

Thanks for this!
Rusty.
--
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/