From patchwork Thu Sep 24 14:36:17 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tim Abbott X-Patchwork-Id: 49879 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n8OEegam001266 for ; Thu, 24 Sep 2009 14:40:42 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752708AbZIXOhH (ORCPT ); Thu, 24 Sep 2009 10:37:07 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752836AbZIXOhG (ORCPT ); Thu, 24 Sep 2009 10:37:06 -0400 Received: from BISCAYNE-ONE-STATION.MIT.EDU ([18.7.7.80]:33113 "EHLO biscayne-one-station.mit.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751884AbZIXOhC (ORCPT ); Thu, 24 Sep 2009 10:37:02 -0400 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 n8OEarfv022457; Thu, 24 Sep 2009 10:36:54 -0400 (EDT) Received: from localhost (c-71-192-160-118.hsd1.nh.comcast.net [71.192.160.118]) (authenticated bits=0) (User authenticated as tabbott@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id n8OEaqlE008183; Thu, 24 Sep 2009 10:36:53 -0400 (EDT) From: Tim Abbott To: Linus Torvalds Cc: Linux Kernel Mailing List , Sam Ravnborg , Tim Abbott , Kyle McMartin , Helge Deller , linux-parisc@vger.kernel.org Subject: [PATCH v2 02/11] parisc: Clean up linker script using new linker script macros. Date: Thu, 24 Sep 2009 10:36:17 -0400 Message-Id: <1253802986-8132-3-git-send-email-tabbott@ksplice.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1253802986-8132-1-git-send-email-tabbott@ksplice.com> References: <1253802986-8132-1-git-send-email-tabbott@ksplice.com> X-Scanned-By: MIMEDefang 2.42 X-Spam-Flag: NO X-Spam-Score: 0.00 Sender: linux-parisc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-parisc@vger.kernel.org This patch has the (likely harmless) side effect of moving .data.init_task inside the _edata. It also changes the alignment of .data.init_task from 16384 to THREAD_SIZE, which can in some configurations be larger than 16384. I believe that this change fixes a potential bug on those configurations. Signed-off-by: Tim Abbott Cc: Kyle McMartin Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Acked-by: Sam Ravnborg --- arch/parisc/kernel/vmlinux.lds.S | 79 ++------------------------------------ 1 files changed, 4 insertions(+), 75 deletions(-) diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index aea1784..3fd66d9 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S @@ -77,13 +77,7 @@ SECTIONS */ . = ALIGN(PAGE_SIZE); data_start = .; - . = ALIGN(16); - /* Exception table */ - __ex_table : { - __start___ex_table = .; - *(__ex_table) - __stop___ex_table = .; - } + EXCEPTION_TABLE(16) NOTES @@ -94,23 +88,8 @@ SECTIONS __stop___unwind = .; } - /* rarely changed data like cpu maps */ - . = ALIGN(16); - .data.read_mostly : { - *(.data.read_mostly) - } - - . = ALIGN(L1_CACHE_BYTES); /* Data */ - .data : { - DATA_DATA - CONSTRUCTORS - } - - . = ALIGN(L1_CACHE_BYTES); - .data.cacheline_aligned : { - *(.data.cacheline_aligned) - } + RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) /* PA-RISC locks requires 16-byte alignment */ . = ALIGN(16); @@ -118,17 +97,6 @@ SECTIONS *(.data.lock_aligned) } - /* nosave data is really only used for software suspend...it's here - * just in case we ever implement it - */ - . = ALIGN(PAGE_SIZE); - __nosave_begin = .; - .data_nosave : { - *(.data.nosave) - } - . = ALIGN(PAGE_SIZE); - __nosave_end = .; - /* End of data section */ _edata = .; @@ -147,14 +115,6 @@ SECTIONS } __bss_stop = .; - - /* assembler code expects init_task to be 16k aligned */ - . = ALIGN(16384); - /* init_task */ - .data.init_task : { - *(.data.init_task) - } - #ifdef CONFIG_64BIT . = ALIGN(16); /* Linkage tables */ @@ -172,31 +132,8 @@ SECTIONS /* reserve space for interrupt stack by aligning __init* to 16k */ . = ALIGN(16384); __init_begin = .; - .init.text : { - _sinittext = .; - INIT_TEXT - _einittext = .; - } - .init.data : { - INIT_DATA - } - . = ALIGN(16); - .init.setup : { - __setup_start = .; - *(.init.setup) - __setup_end = .; - } - .initcall.init : { - __initcall_start = .; - INITCALLS - __initcall_end = .; - } - .con_initcall.init : { - __con_initcall_start = .; - *(.con_initcall.init) - __con_initcall_end = .; - } - SECURITY_INIT + INIT_TEXT_SECTION(16384) + INIT_DATA_SECTION(16) /* alternate instruction replacement. This is a mechanism x86 uses * to detect the CPU type and replace generic instruction sequences @@ -222,14 +159,6 @@ SECTIONS .exit.data : { EXIT_DATA } -#ifdef CONFIG_BLK_DEV_INITRD - . = ALIGN(PAGE_SIZE); - .init.ramfs : { - __initramfs_start = .; - *(.init.ramfs) - __initramfs_end = .; - } -#endif PERCPU(PAGE_SIZE) . = ALIGN(PAGE_SIZE);