1. 03 5月, 2012 2 次提交
  2. 24 3月, 2011 1 次提交
  3. 24 9月, 2009 1 次提交
  4. 14 1月, 2009 3 次提交
  5. 14 11月, 2008 2 次提交
  6. 11 4月, 2008 1 次提交
    • R
      asmlinkage_protect replaces prevent_tail_call · 54a01510
      Roland McGrath 提交于
      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: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      54a01510
  7. 09 5月, 2007 1 次提交
  8. 20 4月, 2006 1 次提交
    • O
      [PATCH] Add more prevent_tail_call() · 5a7b46b3
      OGAWA Hirofumi 提交于
      Those also break userland regs like following.
      
         00000000 <sys_chown16>:
            0:	0f b7 44 24 0c       	movzwl 0xc(%esp),%eax
            5:	83 ca ff             	or     $0xffffffff,%edx
            8:	0f b7 4c 24 08       	movzwl 0x8(%esp),%ecx
            d:	66 83 f8 ff          	cmp    $0xffffffff,%ax
           11:	0f 44 c2             	cmove  %edx,%eax
           14:	66 83 f9 ff          	cmp    $0xffffffff,%cx
           18:	0f 45 d1             	cmovne %ecx,%edx
           1b:	89 44 24 0c          	mov    %eax,0xc(%esp)
           1f:	89 54 24 08          	mov    %edx,0x8(%esp)
           23:	e9 fc ff ff ff       	jmp    24 <sys_chown16+0x24>
      
      where the tailcall at the end overwrites the incoming stack-frame.
      Signed-off-by: NOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      [ I would _really_ like to have a way to tell gcc about calling
        conventions. The "prevent_tail_call()" macro is pretty ugly ]
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5a7b46b3
  9. 12 1月, 2006 1 次提交
  10. 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