From patchwork Thu Apr 30 23:56:15 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Abbott X-Patchwork-Id: 26740 X-Patchwork-Delegate: benh@kernel.crashing.org Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id B7D49B6F56 for ; Fri, 1 May 2009 10:30:21 +1000 (EST) Received: by ozlabs.org (Postfix) id 9669550360; Fri, 1 May 2009 10:09:29 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id 9438F5035F for ; Fri, 1 May 2009 10:09:29 +1000 (EST) X-Original-To: linuxppc-dev@ozlabs.org Delivered-To: linuxppc-dev@ozlabs.org Received: from biscayne-one-station.mit.edu (BISCAYNE-ONE-STATION.MIT.EDU [18.7.7.80]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 3A166DE001 for ; Fri, 1 May 2009 10:08:42 +1000 (EST) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by biscayne-one-station.mit.edu (8.13.6/8.9.2) with ESMTP id n4100dCQ019893; Thu, 30 Apr 2009 20:01:26 -0400 (EDT) Received: from localhost (c-67-186-133-195.hsd1.ma.comcast.net [67.186.133.195]) (authenticated bits=0) (User authenticated as tabbott@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id n3UNuNTJ011848; Thu, 30 Apr 2009 19:56:24 -0400 (EDT) From: Tim Abbott To: Sam Ravnborg Subject: [PATCH 6/8] powerpc: use new macros for .data.init_task. Date: Thu, 30 Apr 2009 19:56:15 -0400 Message-Id: <1241135777-9462-7-git-send-email-tabbott@mit.edu> X-Mailer: git-send-email 1.6.2.1 In-Reply-To: <1241135777-9462-6-git-send-email-tabbott@mit.edu> References: <1241135777-9462-1-git-send-email-tabbott@mit.edu> <1241135777-9462-2-git-send-email-tabbott@mit.edu> <1241135777-9462-3-git-send-email-tabbott@mit.edu> <1241135777-9462-4-git-send-email-tabbott@mit.edu> <1241135777-9462-5-git-send-email-tabbott@mit.edu> <1241135777-9462-6-git-send-email-tabbott@mit.edu> X-Scanned-By: MIMEDefang 2.42 X-Spam-Flag: NO X-Spam-Score: 0.00 Cc: Denys Vlasenko , Jeff Arnold , Linux kernel mailing list , Anders Kaseorg , linuxppc-dev@ozlabs.org, Paul Mackerras , Tim Abbott , Waseem Daher X-BeenThere: linuxppc-dev@ozlabs.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org .data.init_task should not need a separate output section; this change moves it into the .data section. This patch uses THREAD_SIZE rather than 8192/16384 for the alignment. This should have the effect of increasing the alignment to 32768 if CONFIG_PPC_256K_PAGES is defined, but it seems that it should be that way. One of the powerpc maintainers should confirm that this is correct, otherwise we can go back to the #ifdef. Signed-off-by: Tim Abbott Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: linuxppc-dev@ozlabs.org --- arch/powerpc/kernel/init_task.c | 3 +-- arch/powerpc/kernel/machine_kexec_64.c | 4 ++-- arch/powerpc/kernel/vmlinux.lds.S | 13 +++---------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/arch/powerpc/kernel/init_task.c b/arch/powerpc/kernel/init_task.c index 688b329..a4eb25d 100644 --- a/arch/powerpc/kernel/init_task.c +++ b/arch/powerpc/kernel/init_task.c @@ -20,8 +20,7 @@ EXPORT_SYMBOL(init_mm); * way process stacks are handled. This is done by having a special * "init_task" linker map entry.. */ -union thread_union init_thread_union - __attribute__((__section__(".data.init_task"))) = +union thread_union init_thread_union __init_task_data = { INIT_THREAD_INFO(init_task) }; /* diff --git a/arch/powerpc/kernel/machine_kexec_64.c b/arch/powerpc/kernel/machine_kexec_64.c index 49e705f..3761f76 100644 --- a/arch/powerpc/kernel/machine_kexec_64.c +++ b/arch/powerpc/kernel/machine_kexec_64.c @@ -10,6 +10,7 @@ */ +#include #include #include #include @@ -249,8 +250,7 @@ static void kexec_prepare_cpus(void) * We could use a smaller stack if we don't care about anything using * current, but that audit has not been performed. */ -static union thread_union kexec_stack - __attribute__((__section__(".data.init_task"))) = { }; +static union thread_union kexec_stack __init_task_data = { }; /* Our assembly helper, in kexec_stub.S */ extern NORET_TYPE void kexec_sequence(void *newstack, unsigned long start, diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index e769717..f91d7c1 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S @@ -6,6 +6,7 @@ #include #include #include +#include ENTRY(_stext) @@ -221,6 +222,8 @@ SECTIONS _sdata = .; .data : AT(ADDR(.data) - LOAD_OFFSET) { + /* The initial task and kernel stack */ + INIT_TASK_DATA(THREAD_SIZE) PAGE_ALIGNED_DATA NOSAVE_DATA CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) @@ -251,16 +254,6 @@ SECTIONS _edata = .; PROVIDE32 (edata = .); - /* The initial task and kernel stack */ -#ifdef CONFIG_PPC32 - . = ALIGN(8192); -#else - . = ALIGN(16384); -#endif - .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { - *(.data.init_task) - } - . = ALIGN(L1_CACHE_BYTES); .data.read_mostly : AT(ADDR(.data.read_mostly) - LOAD_OFFSET) { *(.data.read_mostly)