1. 18 7月, 2009 1 次提交
    • T
      vmlinux.lds.h: restructure BSS linker script macros · 04e448d9
      Tim Abbott 提交于
      The BSS section macros in vmlinux.lds.h currently place the .sbss
      input section outside the bounds of [__bss_start, __bss_end].  On all
      architectures except for microblaze that handle both .sbss and
      __bss_start/__bss_end, this is wrong: the .sbss input section is
      within the range [__bss_start, __bss_end].  Relatedly, the example
      code at the top of the file actually has __bss_start/__bss_end defined
      twice; I believe the right fix here is to define them in the
      BSS_SECTION macro but not in the BSS macro.
      
      Another problem with the current macros is that several
      architectures have an ALIGN(4) or some other small number just before
      __bss_stop in their linker scripts.  The BSS_SECTION macro currently
      hardcodes this to 4; while it should really be an argument.  It also
      ignores its sbss_align argument; fix that.
      
      mn10300 is the only user at present of any of the macros touched by
      this patch.  It looks like mn10300 actually was incorrectly converted
      to use the new BSS() macro (the alignment of 4 prior to conversion was
      a __bss_stop alignment, but the argument to the BSS macro is a start
      alignment).  So fix this as well.
      
      I'd like acks from Sam and David on this one.  Also CCing Paul, since
      he has a patch from me which will need to be updated to use
      BSS_SECTION(0, PAGE_SIZE, 4) once this gets merged.
      Signed-off-by: NTim Abbott <tabbott@ksplice.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      04e448d9
  2. 27 6月, 2009 1 次提交
    • T
      asm-generic/vmlinux.lds.h: shuffle INIT_TASK* macro names in vmlinux.lds.h · 39a449d9
      Tim Abbott 提交于
      We recently added a INIT_TASK(align) in include/asm-generic/vmlinux.lds.h,
      but there is already a macro INIT_TASK in include/linux/init_task.h, which
      is quite confusing.  We should switch the macro in the linker script to
      INIT_TASK_DATA. (Sorry that I missed this in reviewing the patch).  Since
      the macros are new, there is only one user of the INIT_TASK in
      vmlinux.lds.h, arch/mn10300/kernel/vmlinux.lds.S.
      
      However, we are currently using INIT_TASK_DATA for laying down an entire
      .data.init_task section.  So rename that to INIT_TASK_DATA_SECTION.
      
      I would be worried about changing the meaning of INIT_TASK_DATA, but the
      old INIT_TASK_DATA implementation had no users, and in fact if anyone had
      tried to use it, it would have failed to compile because it didn't pass
      the alignment to the old INIT_TASK.
      Signed-off-by: NTim Abbott <tabbott@ksplice.com>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Jesper Nilsson <Jesper.Nilsson@axis.com
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      39a449d9
  3. 23 6月, 2009 1 次提交
  4. 27 4月, 2009 1 次提交
  5. 11 12月, 2008 1 次提交
  6. 09 2月, 2008 1 次提交
  7. 29 1月, 2008 1 次提交
  8. 20 7月, 2007 1 次提交
    • F
      define new percpu interface for shared data · 5fb7dc37
      Fenghua Yu 提交于
      per cpu data section contains two types of data.  One set which is
      exclusively accessed by the local cpu and the other set which is per cpu,
      but also shared by remote cpus.  In the current kernel, these two sets are
      not clearely separated out.  This can potentially cause the same data
      cacheline shared between the two sets of data, which will result in
      unnecessary bouncing of the cacheline between cpus.
      
      One way to fix the problem is to cacheline align the remotely accessed per
      cpu data, both at the beginning and at the end.  Because of the padding at
      both ends, this will likely cause some memory wastage and also the
      interface to achieve this is not clean.
      
      This patch:
      
      Moves the remotely accessed per cpu data (which is currently marked
      as ____cacheline_aligned_in_smp) into a different section, where all the data
      elements are cacheline aligned. And as such, this differentiates the local
      only data and remotely accessed data cleanly.
      Signed-off-by: NFenghua Yu <fenghua.yu@intel.com>
      Acked-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: <linux-arch@vger.kernel.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5fb7dc37
  9. 19 5月, 2007 2 次提交
  10. 03 5月, 2007 1 次提交
  11. 12 2月, 2007 2 次提交
    • J
      [PATCH] disable init/initramfs.c: architectures · 67d38229
      Jean-Paul Saman 提交于
      Update all arch/*/kernel/vmlinux.lds.S to not include space for initramfs
      when CONFIG_BLK_DEV_INITRAMFS is not selected.  This saves another 4 kbytes
      on most platfoms (some reserve PAGE_SIZE for initramfs).
      Signed-off-by: NJean-Paul Saman <jean-paul.saman@nxp.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      67d38229
    • H
      [PATCH] m32r: fix kernel entry address of vmlinux · 3d60f849
      Hirokazu Takata 提交于
      This patch fixes the kernel entry point address of vmlinux.
      
      The m32r kernel entry address is 0x08002000 (physical).
      But, so far, the ENTRY point written in vmlinux.lds.S was not point
      the correct kernel entry address.
      
      (before fix)
          $ objdump -x vmlinux
          vmlinux:     file format elf32-m32r-linux
          vmlinux
          architecture: m32r2, flags 0x00000112:
          EXEC_P, HAS_SYMS, D_PAGED
          start address 0x88002090	/* NG */
              :
          Sections:
          Idx Name          Size      VMA       LMA       File off  Algn
            0 .empty_zero_page 00001000  88001000  88001000  00001000  2**12
                            CONTENTS, ALLOC, LOAD, DATA
            1 .boot         0000008c  88002000  88002000  00002000  2**2
                            CONTENTS, ALLOC, LOAD, READONLY, CODE
            2 .text         001ab694  88002090  88002090  00002090  2**4
                            CONTENTS, ALLOC, LOAD, READONLY, CODE
              :
      
      (after fix)
          $ objdump -x vmlinux
          vmlinux:     file format elf32-m32r-linux
          vmlinux
          architecture: m32r2, flags 0x00000112:
          EXEC_P, HAS_SYMS, D_PAGED
          start address 0x08002000	/* OK */
              :
      
      This fix also remedies the following GDB error message (of gdb-6.4 or after)
      at the first operation of kernel debugging:
      "Previous frame identical to this frame (corrupt stack?)".
      Signed-off-by: NHirokazu Takata <takata@linux-m32r.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      3d60f849
  12. 28 10月, 2006 1 次提交
  13. 01 7月, 2006 1 次提交
  14. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4