1. 15 11月, 2007 3 次提交
  2. 13 11月, 2007 6 次提交
  3. 10 11月, 2007 10 次提交
    • C
      x86 - 32-bit ptrace emulation mishandles 6th arg · ecd744ee
      Chuck Ebbert 提交于
      [ jdike - Pushing Chuck's patch - see
      http://lkml.org/lkml/2005/9/16/261 for some history and a test
      program.  UML is also broken without this patch - its processes get
      SIGBUS from the corrupt 6th argument to mmap being interpretted as a
      file offset ]
      
      When the 32-bit vDSO is used to make a system call, the %ebp register for
      the 6th syscall arg has to be loaded from the user stack (where it's pushed
      by the vDSO user code).  The native i386 kernel always does this before
      stopping for syscall tracing, so %ebp can be seen and modified via ptrace
      to access the 6th syscall argument.  The x86-64 kernel fails to do this,
      presenting the stack address to ptrace instead.  This makes the %rbp value
      seen by 64-bit ptrace of a 32-bit process, and the %ebp value seen by a
      32-bit caller of ptrace, both differ from the native i386 behavior.
      
      This patch fixes the problem by putting the word loaded from the user stack
      into %rbp before calling syscall_trace_enter, and reloading the 6th syscall
      argument from there afterwards (so ptrace can change it).  This makes the
      behavior match that of i386 kernels.
      Original-Patch-By: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: NJeff Dike <jdike@linux.intel.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      ecd744ee
    • R
      x86_64: ia32 ptrace THREAD_AREA fix · fd181c72
      Roland McGrath 提交于
      The addr argument to PTRACE_GET_THREAD_AREA and PTRACE_SET_THREAD_AREA is
      not a magic constant.  It's derived from the segment register values being
      used, which are computed originally from the index used with set_thread_area.
      The value does not need to match what a native i386 kernel would accept.
      It needs to match the segment selectors that can actually be in use in this
      32-bit process.  The 64-bit ptrace support for PTRACE_GET_THREAD_AREA
      (normally used only on 32-bit processes) is correct, but the 32-bit emulation
      of ptrace is broken.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      fd181c72
    • D
      FRV: Remove the section annotation on free_initmem() · e4fc5a1a
      David Howells 提交于
      Remove the section annotation on FRV's free_initmem().  It can't be marked
      __init, lest it free itself.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e4fc5a1a
    • I
      x86: make nmi_cpu_busy() always defined · 0492007e
      Ingo Molnar 提交于
      nmi_cpu_busy() must be available on !SMP too.
      
      this is in preparation to a smp_call_function_mask() fix.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0492007e
    • I
      x86: make ipi_handler() always defined · 4e2947f1
      Ingo Molnar 提交于
      prepare for up_smp_call_function() to ensure that the 'func'
      pointer is unused. (which is related to a KVM build fix)
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4e2947f1
    • P
      sched: restore deterministic CPU accounting on powerpc · fa13a5a1
      Paul Mackerras 提交于
      Since powerpc started using CONFIG_GENERIC_CLOCKEVENTS, the
      deterministic CPU accounting (CONFIG_VIRT_CPU_ACCOUNTING) has been
      broken on powerpc, because we end up counting user time twice: once in
      timer_interrupt() and once in update_process_times().
      
      This fixes the problem by pulling the code in update_process_times
      that updates utime and stime into a separate function called
      account_process_tick.  If CONFIG_VIRT_CPU_ACCOUNTING is not defined,
      there is a version of account_process_tick in kernel/timer.c that
      simply accounts a whole tick to either utime or stime as before.  If
      CONFIG_VIRT_CPU_ACCOUNTING is defined, then arch code gets to
      implement account_process_tick.
      
      This also lets us simplify the s390 code a bit; it means that the s390
      timer interrupt can now call update_process_times even when
      CONFIG_VIRT_CPU_ACCOUNTING is turned on, and can just implement a
      suitable account_process_tick().
      
      account_process_tick() now takes the task_struct * as an argument.
      Tested both with and without CONFIG_VIRT_CPU_ACCOUNTING.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      fa13a5a1
    • G
      [IA64] IOSAPIC bogus error cleanup · 7f6ff62a
      George Beshers 提交于
      On Altix (sn2) machines the "Error parsing MADT" message is
      misleading because the lack of IOSAPIC entries is expected.
      
      Since I am sure someone will ask, I have been told that
      the chance of this changing anytime soon is close to nil.
      Signed-off-by: NGeorge Beshers <gbeshers@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      7f6ff62a
    • R
      [IA64] Update printing of feature set bits · b8de471f
      Russ Anderson 提交于
      Newer Itanium versions have added additional processor feature set
      bits.  This patch prints all the implemented feature set bits.  Some
      bit descriptions have not been made public.  For those bits, a generic
      "Feature set X bit Y" message is printed.  Bits that are not implemented
      will no longer be printed.
      Signed-off-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      b8de471f
    • K
      [IA64] Fix IOSAPIC delivery mode setting · c9d059de
      Kenji Kaneshige 提交于
      Fix the problem that redirect hit bit in I/O SAPIC RTE is set even
      when it must be disabled (e.g. nointroute boot option is set, CPU
      hotplug is enabled or percpu vector is enabled).
      Signed-off-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      c9d059de
    • D
      [IA64] XPC heartbeat timer function must run on CPU 0 · 4c013f5c
      Dean Nelson 提交于
      Currently, XPC's heartbeat timer function runs on whatever CPU modprobe/insmod
      ran on when XPC was started. To avoid the heartbeat from being delayed for
      long periods the timer function must run on CPU 0.
      
      N.B. Altix doesn't currently allow cpu0 to be taken offline, so this is
      safe for now.  This code must be revised when offline of cpu0 is enabled.
      Signed-off-by: NDean Nelson <dcn@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4c013f5c
  4. 09 11月, 2007 3 次提交
  5. 08 11月, 2007 18 次提交