1. 13 Jan, 2012 3 commits
  2. 24 May, 2011 1 commit
  3. 03 Mar, 2010 2 commits
  4. 21 Sep, 2009 1 commit
    • Tim Abbott's avatar
      kbuild: Don't define ALIGN and ENTRY when preprocessing linker scripts. · 42f29a25
      Tim Abbott authored
      Adding a reference to <linux/linkage.h> to x86's <asm/cache.h> causes
      the x86 linker script to have syntax errors, because the ALIGN and
      ENTRY keywords get redefined to the assembly implementations of those.
      One could fix this by adjusting the include structure, but I think any
      solution based on that approach would be fragile.
      Currently, it is impossible when writing a header to do something
      different for assembly files and linker scripts, even though there are
      clearly cases where one wants them to define macros differently for
      the two (ENTRY being an excellent example).
      So I think the right solution here is to introduce a new preprocessor
      definition, called LINKER_SCRIPT that is set along with __ASSEMBLY__
      for linker scripts, and to use that to not define ALIGN and ENTRY in
      linker scripts.
      I suspect we'll find other uses for this mechanism in
      the future.
      Signed-off-by: default avatarTim Abbott <tabbott@ksplice.com>
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
  5. 26 Jun, 2009 1 commit
  6. 27 Nov, 2008 1 commit
  7. 14 Oct, 2008 1 commit
  8. 08 Jul, 2008 1 commit
    • Jeremy Fitzhardinge's avatar
      build: add __page_aligned_data and __page_aligned_bss · a7bf0bd5
      Jeremy Fitzhardinge authored
      Making a variable page-aligned by using
      __attribute__((section(".data.page_aligned"))) is fragile because if
      sizeof(variable) is not also a multiple of page size, it leaves
      variables in the remainder of the section unaligned.
      This patch introduces two new qualifiers, __page_aligned_data and
      __page_aligned_bss to set the section *and* the alignment of
      variables.  This makes page-aligned variables more robust because the
      linker will make sure they're aligned properly.  Unfortunately it
      requires *all* page-aligned data to use these macros...
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
  9. 23 May, 2008 1 commit
  10. 11 Apr, 2008 3 commits
    • Heiko Carstens's avatar
      Fix "$(AS) -traditional" compile breakage caused by asmlinkage_protect · b0fac023
      Heiko Carstens authored
      git commit 54a01510 ("asmlinkage_protect
      replaces prevent_tail_call") causes this build failure on s390:
          AS      arch/s390/kernel/entry64.o
        In file included from arch/s390/kernel/entry64.S:14:
        include/linux/linkage.h:34: error: syntax error in macro parameter list
        make[1]: *** [arch/s390/kernel/entry64.o] Error 1
        make: *** [arch/s390/kernel] Error 2
      and some other architectures.  The reason is that some architectures add
      the "-traditional" flag to the invocation of $(AS), which disables
      variadic macro argument support.
      So just surround the new define with an #ifndef __ASSEMBLY__ to prevent
      any side effects on asm code.
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Linus Torvalds's avatar
      Add commentary about the new "asmlinkage_protect()" macro · d10d89ec
      Linus Torvalds authored
      It's really a pretty ugly thing to need, and some day it will hopefully
      be obviated by teaching gcc about the magic calling conventions for the
      low-level system call code, but in the meantime we can at least add big
      honking comments about why we need these insane and strange macros.
      I took my comments from my version of the macro, but I ended up deciding
      to just pick Roland's version of the actual code instead (with his
      prettier syntax that uses vararg macros).  Thus the previous two commits
      that actually implement it.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    • Roland McGrath's avatar
      asmlinkage_protect replaces prevent_tail_call · 54a01510
      Roland McGrath authored
      The prevent_tail_call() macro works around the problem of the compiler
      clobbering argument words on the stack, which for asmlinkage functions
      is the caller's (user's) struct pt_regs.  The tail/sibling-call
      optimization is not the only way that the compiler can decide to use
      stack argument words as scratch space, which we have to prevent.
      Other optimizations can do it too.
      Until we have new compiler support to make "asmlinkage" binding on the
      compiler's own use of the stack argument frame, we have work around all
      the manifestations of this issue that crop up.
      More cases seem to be prevented by also keeping the incoming argument
      variables live at the end of the function.  This makes their original
      stack slots attractive places to leave those variables, so the compiler
      tends not clobber them for something else.  It's still no guarantee, but
      it handles some observed cases that prevent_tail_call() did not.
      Signed-off-by: default avatarRoland McGrath <roland@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
  11. 14 Feb, 2008 1 commit
  12. 30 Jan, 2008 2 commits
  13. 22 Oct, 2007 1 commit
  14. 26 Sep, 2006 1 commit
    • Prasanna S.P's avatar
      [PATCH] x86: error_code is not safe for kprobes · d28c4393
      Prasanna S.P authored
      This patch moves the entry.S:error_entry to .kprobes.text section,
      since code marked unsafe for kprobes jumps directly to entry.S::error_entry,
      that must be marked unsafe as well.
      This patch also moves all the ".previous.text" asm directives to ".previous"
      for kprobes section.
      AK: Following a similar i386 patch from Chuck Ebbert
      AK: Also merged Jeremy's fix in.
      +From: Jeremy Fitzhardinge <jeremy@goop.org>
      KPROBE_ENTRY does a .section .kprobes.text, and expects its users to
      do a .previous at the end of the function.
      Unfortunately, if any code within the function switches sections, for
      example .fixup, then the .previous ends up putting all subsequent code
      into .fixup.  Worse, any subsequent .fixup code gets intermingled with
      the code its supposed to be fixing (which is also in .fixup).  It's
      surprising this didn't cause more havok.
      The fix is to use .pushsection/.popsection, so this stuff nests
      properly.  A further cleanup would be to get rid of all
      .section/.previous pairs, since they're inherently fragile.
      +From: Chuck Ebbert <76306.1226@compuserve.com>
      Because code marked unsafe for kprobes jumps directly to
      entry.S::error_code, that must be marked unsafe as well.
      The easiest way to do that is to move the page fault entry
      point to just before error_code and let it inherit the same
      Also moved all the ".previous" asm directives for kprobes
      sections to column 1 and removed ".text" from them.
      Signed-off-by: default avatarChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
  15. 26 Apr, 2006 1 commit
  16. 24 Mar, 2006 1 commit
  17. 07 Sep, 2005 1 commit
    • Prasanna S Panchamukhi's avatar
      [PATCH] Kprobes: prevent possible race conditions generic · d0aaff97
      Prasanna S Panchamukhi authored
      There are possible race conditions if probes are placed on routines within the
      kprobes files and routines used by the kprobes.  For example if you put probe
      on get_kprobe() routines, the system can hang while inserting probes on any
      routine such as do_fork().  Because while inserting probes on do_fork(),
      register_kprobes() routine grabs the kprobes spin lock and executes
      get_kprobe() routine and to handle probe of get_kprobe(), kprobes_handler()
      gets executed and tries to grab kprobes spin lock, and spins forever.  This
      patch avoids such possible race conditions by preventing probes on routines
      within the kprobes file and routines used by kprobes.
      I have modified the patches as per Andi Kleen's suggestion to move kprobes
      routines and other routines used by kprobes to a seperate section
      Also moved page fault and exception handlers, general protection fault to
      .kprobes.text section.
      These patches have been tested on i386, x86_64 and ppc64 architectures, also
      compiled on ia64 and sparc64 architectures.
      Signed-off-by: default avatarPrasanna S Panchamukhi <prasanna@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
  18. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      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!