1. 19 7月, 2008 1 次提交
  2. 18 7月, 2008 1 次提交
  3. 17 7月, 2008 1 次提交
    • R
      x86 ptrace: unify syscall tracing · d4d67150
      Roland McGrath 提交于
      This unifies and cleans up the syscall tracing code on i386 and x86_64.
      
      Using a single function for entry and exit tracing on 32-bit made the
      do_syscall_trace() into some terrible spaghetti.  The logic is clear and
      simple using separate syscall_trace_enter() and syscall_trace_leave()
      functions as on 64-bit.
      
      The unification adds PTRACE_SYSEMU and PTRACE_SYSEMU_SINGLESTEP support
      on x86_64, for 32-bit ptrace() callers and for 64-bit ptrace() callers
      tracing either 32-bit or 64-bit tasks.  It behaves just like 32-bit.
      
      Changing syscall_trace_enter() to return the syscall number shortens
      all the assembly paths, while adding the SYSEMU feature in a simple way.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      d4d67150
  4. 16 7月, 2008 1 次提交
  5. 09 7月, 2008 1 次提交
  6. 08 7月, 2008 3 次提交
  7. 19 6月, 2008 1 次提交
  8. 30 4月, 2008 1 次提交
  9. 26 4月, 2008 3 次提交
  10. 19 4月, 2008 1 次提交
  11. 17 4月, 2008 5 次提交
    • R
      x86: sys32_execve PT_DTRACE · b00de174
      Roland McGrath 提交于
      The PT_DTRACE flag is meaningless and obsolete.
      Don't touch it.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b00de174
    • R
      x86: ia32 ptrace vs -ENOSYS sysenter/syscall · 48ee679a
      Roland McGrath 提交于
      The previous "x86_64 ia32 ptrace vs -ENOSYS" fix only covered
      the int $0x80 system call entries.  This does the same fix
      for the sysenter and syscall instruction paths.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      48ee679a
    • R
      x86: ia32 ptrace vs -ENOSYS · 8ab32bb8
      Roland McGrath 提交于
      When we're stopped at syscall entry tracing, ptrace can change the %eax
      value from -ENOSYS to something else.  If no system call is actually made
      because the syscall number (now in orig_eax) is bad, then the %eax value
      set by ptrace should be returned to the user.  But, instead it gets reset
      to -ENOSYS again.  This is a regression from the native 32-bit kernel.
      
      This change fixes it by leaving the return value alone after entry tracing.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8ab32bb8
    • A
      x86: reducing debuginfo size by removing unneeded includes · 28d23128
      Arnaldo Carvalho de Melo 提交于
      	I found it strange that the struct sk_buff definition was found
      inside the DWARF debugging sections in the generated object, so I verified
      and found that there is no need for the files that bring struct sk_buff
      definition into this file and verified also that sk_buff is not brought
      in indirectly too, thru other headers.
      
      	I went on and removed many other unneeded includes and the end
      result is:
      
      [acme@doppio net-2.6]$ l /tmp/sys_ia32.o.before /tmp/sys_ia32.o.after
      -rw-rw-r-- 1 acme acme 185240 2008-02-06 19:19 /tmp/sys_ia32.o.after
      -rw-rw-r-- 1 acme acme 248328 2008-02-06 19:00 /tmp/sys_ia32.o.before
      
      	Almost 64KB only on this object file!
      
      	There were no other side effects from this change:
      
      [acme@doppio net-2.6]$ objcopy -j "text" /tmp/sys_ia32.o.before /tmp/text.before
      [acme@doppio net-2.6]$ objcopy -j "text" /tmp/sys_ia32.o.after /tmp/text.after
      [acme@doppio net-2.6]$ md5sum /tmp/text.before /tmp/text.after
      b7ac9b17942add68494e698e4f965d36  /tmp/text.before
      b7ac9b17942add68494e698e4f965d36  /tmp/text.after
      
      	One of the complaints about using tools such as systemtap is
      that one has to install the huge kernel-debuginfo package:
      
      [acme@doppio net-2.6]$ rpm -q --qf "%{size}\n" kernel-rt-debuginfo
      471737710
      543867594
      [acme@doppio net-2.6]$
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      28d23128
    • R
      x86 vDSO: don't use disabled vDSO for signal trampoline · 1a3e4ca4
      Roland McGrath 提交于
      If the vDSO was not mapped, don't use it as the "restorer" for a signal
      handler.  Whether we have a pointer in mm->context.vdso depends on what
      happened at exec time, so we shouldn't check any global flags now.
      
      Background:
      
      Currently, every 32-bit exec gets the vDSO mapped even if it's disabled
      (the process just doesn't get told about it).  Because it's in fact
      always there, the bug that this patch fixes cannot happen now.  With
      the second patch, it won't be mapped at all when it's disabled, which is
      one of the things that people might really want when they disable it (so
      nothing they didn't ask for goes into their address space).
      
      The 32-bit signal handler setup when SA_RESTORER is not used refers to
      current->mm->context.vdso without regard to whether the vDSO has been
      disabled when the process was exec'd.  This patch fixes this not to use
      it when it's null, which becomes possible after the second patch. (This
      never happens in normal use, because glibc's sigaction call uses
      SA_RESTORER unless glibc detected the vDSO.)
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1a3e4ca4
  12. 07 3月, 2008 1 次提交
  13. 08 2月, 2008 1 次提交
    • H
      Sanitize the type of struct user.u_ar0 · 6e16d89b
      H. Peter Anvin 提交于
      struct user.u_ar0 is defined to contain a pointer offset on all
      architectures in which it is defined (all architectures which define an
      a.out format except SPARC.) However, it has a pointer type in the headers,
      which is pointless -- <asm/user.h> is not exported to userspace, and it
      just makes the code messy.
      
      Redefine the field as "unsigned long" (which is the same size as a pointer
      on all Linux architectures) and change the setting code to user offsetof()
      instead of hand-coded arithmetic.
      
      Cc: Linux Arch Mailing List <linux-arch@vger.kernel.org>
      Cc: Bryan Wu <bryan.wu@analog.com>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Lennert Buytenhek <kernel@wantstofly.org>
      Cc: Håvard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6e16d89b
  14. 06 2月, 2008 1 次提交
  15. 30 1月, 2008 18 次提交