| From foo@baz Wed Jan 3 18:58:12 CET 2018 |
| From: Hugh Dickins <hughd@google.com> |
| Date: Mon, 21 Aug 2017 20:11:43 -0700 |
| Subject: kaiser: cleanups while trying for gold link |
| |
| From: Hugh Dickins <hughd@google.com> |
| |
| |
| While trying to get our gold link to work, four cleanups: |
| matched the gdt_page declaration to its definition; |
| in fiddling unsuccessfully with PERCPU_INPUT(), lined up backslashes; |
| lined up the backslashes according to convention in percpu-defs.h; |
| deleted the unused irq_stack_pointer addition to irq_stack_union. |
| |
| Sad to report that aligning backslashes does not appear to help gold |
| align to 8192: but while these did not help, they are worth keeping. |
| |
| Signed-off-by: Hugh Dickins <hughd@google.com> |
| Acked-by: Jiri Kosina <jkosina@suse.cz> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/x86/include/asm/desc.h | 2 +- |
| arch/x86/include/asm/processor.h | 5 ----- |
| include/asm-generic/vmlinux.lds.h | 18 ++++++++---------- |
| include/linux/percpu-defs.h | 24 ++++++++++++------------ |
| 4 files changed, 21 insertions(+), 28 deletions(-) |
| |
| --- a/arch/x86/include/asm/desc.h |
| +++ b/arch/x86/include/asm/desc.h |
| @@ -43,7 +43,7 @@ struct gdt_page { |
| struct desc_struct gdt[GDT_ENTRIES]; |
| } __attribute__((aligned(PAGE_SIZE))); |
| |
| -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page); |
| +DECLARE_PER_CPU_PAGE_ALIGNED_USER_MAPPED(struct gdt_page, gdt_page); |
| |
| static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu) |
| { |
| --- a/arch/x86/include/asm/processor.h |
| +++ b/arch/x86/include/asm/processor.h |
| @@ -332,11 +332,6 @@ union irq_stack_union { |
| char gs_base[40]; |
| unsigned long stack_canary; |
| }; |
| - |
| - struct { |
| - char irq_stack_pointer[64]; |
| - char unused[IRQ_STACK_SIZE - 64]; |
| - }; |
| }; |
| |
| DECLARE_PER_CPU_FIRST(union irq_stack_union, irq_stack_union) __visible; |
| --- a/include/asm-generic/vmlinux.lds.h |
| +++ b/include/asm-generic/vmlinux.lds.h |
| @@ -725,16 +725,14 @@ |
| */ |
| #define PERCPU_INPUT(cacheline) \ |
| VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
| - \ |
| - VMLINUX_SYMBOL(__per_cpu_user_mapped_start) = .; \ |
| - *(.data..percpu..first) \ |
| - . = ALIGN(cacheline); \ |
| - *(.data..percpu..user_mapped) \ |
| - *(.data..percpu..user_mapped..shared_aligned) \ |
| - . = ALIGN(PAGE_SIZE); \ |
| - *(.data..percpu..user_mapped..page_aligned) \ |
| - VMLINUX_SYMBOL(__per_cpu_user_mapped_end) = .; \ |
| - \ |
| + VMLINUX_SYMBOL(__per_cpu_user_mapped_start) = .; \ |
| + *(.data..percpu..first) \ |
| + . = ALIGN(cacheline); \ |
| + *(.data..percpu..user_mapped) \ |
| + *(.data..percpu..user_mapped..shared_aligned) \ |
| + . = ALIGN(PAGE_SIZE); \ |
| + *(.data..percpu..user_mapped..page_aligned) \ |
| + VMLINUX_SYMBOL(__per_cpu_user_mapped_end) = .; \ |
| . = ALIGN(PAGE_SIZE); \ |
| *(.data..percpu..page_aligned) \ |
| . = ALIGN(cacheline); \ |
| --- a/include/linux/percpu-defs.h |
| +++ b/include/linux/percpu-defs.h |
| @@ -121,10 +121,10 @@ |
| #define DEFINE_PER_CPU(type, name) \ |
| DEFINE_PER_CPU_SECTION(type, name, "") |
| |
| -#define DECLARE_PER_CPU_USER_MAPPED(type, name) \ |
| +#define DECLARE_PER_CPU_USER_MAPPED(type, name) \ |
| DECLARE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION) |
| |
| -#define DEFINE_PER_CPU_USER_MAPPED(type, name) \ |
| +#define DEFINE_PER_CPU_USER_MAPPED(type, name) \ |
| DEFINE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION) |
| |
| /* |
| @@ -156,11 +156,11 @@ |
| DEFINE_PER_CPU_SECTION(type, name, PER_CPU_SHARED_ALIGNED_SECTION) \ |
| ____cacheline_aligned_in_smp |
| |
| -#define DECLARE_PER_CPU_SHARED_ALIGNED_USER_MAPPED(type, name) \ |
| +#define DECLARE_PER_CPU_SHARED_ALIGNED_USER_MAPPED(type, name) \ |
| DECLARE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION PER_CPU_SHARED_ALIGNED_SECTION) \ |
| ____cacheline_aligned_in_smp |
| |
| -#define DEFINE_PER_CPU_SHARED_ALIGNED_USER_MAPPED(type, name) \ |
| +#define DEFINE_PER_CPU_SHARED_ALIGNED_USER_MAPPED(type, name) \ |
| DEFINE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION PER_CPU_SHARED_ALIGNED_SECTION) \ |
| ____cacheline_aligned_in_smp |
| |
| @@ -185,18 +185,18 @@ |
| /* |
| * Declaration/definition used for per-CPU variables that must be page aligned and need to be mapped in user mode. |
| */ |
| -#define DECLARE_PER_CPU_PAGE_ALIGNED_USER_MAPPED(type, name) \ |
| - DECLARE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION"..page_aligned") \ |
| - __aligned(PAGE_SIZE) |
| - |
| -#define DEFINE_PER_CPU_PAGE_ALIGNED_USER_MAPPED(type, name) \ |
| - DEFINE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION"..page_aligned") \ |
| - __aligned(PAGE_SIZE) |
| +#define DECLARE_PER_CPU_PAGE_ALIGNED_USER_MAPPED(type, name) \ |
| + DECLARE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION"..page_aligned") \ |
| + __aligned(PAGE_SIZE) |
| + |
| +#define DEFINE_PER_CPU_PAGE_ALIGNED_USER_MAPPED(type, name) \ |
| + DEFINE_PER_CPU_SECTION(type, name, USER_MAPPED_SECTION"..page_aligned") \ |
| + __aligned(PAGE_SIZE) |
| |
| /* |
| * Declaration/definition used for per-CPU variables that must be read mostly. |
| */ |
| -#define DECLARE_PER_CPU_READ_MOSTLY(type, name) \ |
| +#define DECLARE_PER_CPU_READ_MOSTLY(type, name) \ |
| DECLARE_PER_CPU_SECTION(type, name, "..read_mostly") |
| |
| #define DEFINE_PER_CPU_READ_MOSTLY(type, name) \ |