1. 30 10月, 2010 5 次提交
    • Y
      x86: Check irq_remapped instead of remapping_enabled in destroy_irq() · 7b79462a
      Yinghai Lu 提交于
      Russ Anderson reported:
      | There is a regression that is causing a NULL pointer dereference
      | in free_irte when shutting down xpc. git bisect narrowed it down
      | to git commit d585d060(intr_remap: Simplify the code further), which
      | changed free_irte(). Reverse applying the patch fixes the problem.
      
      We need to use irq_remapped() for each irq instead of checking only
      intr_remapping_enabled as there might be non remapped irqs even when
      remapping is enabled.
      
      [ tglx: use cfg instead of retrieving it again. Massaged changelog ]
      Reported-bisected-and-tested-by: NRuss Anderson <rja@sgi.com>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Cc: Suresh Siddha <suresh.b.siddha@intel.com>
      LKML-Reference: <4CCBD511.40607@kernel.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      7b79462a
    • J
      x86, alternative: Call stop_machine_text_poke() on all cpus · 404ba5d7
      Jason Baron 提交于
      Currently, text_poke_smp() passes a NULL as the third argument to
      __stop_machine(), which will only run stop_machine_text_poke()
      on 1 cpu. Change NULL -> cpu_online_mask, as stop_machine_text_poke()
      is intended to be run on all cpus.
      
      I actually didn't notice any problems with stop_machine_text_poke()
      only being called on 1 cpu, but found this via code inspection.
      Signed-off-by: NJason Baron <jbaron@redhat.com>
      LKML-Reference: <20101028152026.GB2875@redhat.com>
      Acked-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Acked-by: NMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      404ba5d7
    • S
      jump label: Add work around to i386 gcc asm goto bug · 45f81b1c
      Steven Rostedt 提交于
      On i386 (not x86_64) early implementations of gcc would have a bug
      with asm goto causing it to produce code like the following:
      
      (This was noticed by Peter Zijlstra)
      
         56 pushl 0
         67 nopl         jmp 0x6f
            popl
            jmp 0x8c
      
         6f              mov
                         test
                         je 0x8c
      
         8c mov
            call *(%esp)
      
      The jump added in the asm goto skipped over the popl that matched
      the pushl 0, which lead up to a quick crash of the system when
      the jump was enabled. The nopl is defined in the asm goto () statement
      and when tracepoints are enabled, the nop changes to a jump to the label
      that was specified by the asm goto. asm goto is suppose to tell gcc that
      the code in the asm might jump to an external label. Here gcc obviously
      fails to make that work.
      
      The bug report for gcc is here:
      
        http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226
      
      The bug only appears on x86 when not compiled with
      -maccumulate-outgoing-args. This option is always set on x86_64 and it
      is also the work around for a function graph tracer i386 bug.
      (See commit: 746357d6)
      This explains why the bug only showed up on i386 when function graph
      tracer was not enabled.
      
      This patch now adds a CONFIG_JUMP_LABEL option that is default
      off instead of using jump labels by default. When jump labels are
      enabled, the -maccumulate-outgoing-args will be used (causing a
      slightly larger kernel image on i386). This option will exist
      until we have a way to detect if the gcc compiler in use is safe
      to use on all configurations without the work around.
      
      Note, there exists such a test, but for now we will keep the enabling
      of jump label as a manual option.
      
      Archs that know the compiler is safe with asm goto, may choose to
      select JUMP_LABEL and enable it by default.
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Cause-discovered-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: David Daney <ddaney@caviumnetworks.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Cc: David Miller <davem@davemloft.net>
      Cc: Richard Henderson <rth@redhat.com>
      LKML-Reference: <1288028746.3673.11.camel@laptop>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      45f81b1c
    • D
      debug_core,x86,blackfin: Clean up hw debug disable API · d7ba979d
      Dongdong Deng 提交于
      The kgdb_disable_hw_debug() was an architecture specific function for
      disabling all hardware breakpoints on a per cpu basis when entering
      the debug core.
      
      This patch will remove the weak function kdbg_disable_hw_debug() and
      change it into a call back which lives with the rest of hw breakpoint
      call backs in struct kgdb_arch.
      Signed-off-by: NDongdong Deng <dongdong.deng@windriver.com>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      d7ba979d
    • H
      x86, ftrace: Use safe noops, drop trap test · 2d1d7126
      H. Peter Anvin 提交于
      Always use a safe 5-byte noop sequence.  Drop the trap test, since it
      is known to return false negatives on some virtualization platforms on
      32 bits.  The resulting code is both simpler and safer.
      
      Cc: Daniel Drake <dsd@laptop.org>
      Cc: Jason Baron <jbaron@redhat.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      2d1d7126
  2. 29 10月, 2010 3 次提交
  3. 28 10月, 2010 4 次提交
  4. 27 10月, 2010 21 次提交
  5. 26 10月, 2010 3 次提交
  6. 25 10月, 2010 1 次提交
    • I
      x86/oprofile: Fix uninitialized variable use in debug printk · 2c78ffec
      Ingo Molnar 提交于
      Stephen Rothwell reported this build warning:
      
        arch/x86/oprofile/op_model_amd.c: In function 'ibs_eilvt_valid':
        arch/x86/oprofile/op_model_amd.c:289: warning: 'offset' may be used uninitialized in this function
      
      And correctly observed that indeed the variable is used uninitialized in
      this function. The result of this bug can be a debug printk with a bogus
      value.
      
      Also fix a few more small details that made this function hard to read
      and which probably contributed to the bug being introduced to begin with:
      
       - Use more symmetric error conditions
      
       - Remove the !0 obfuscation
      
       - Add newlines to the printk output
      
       - Remove bogus linebreaks in printk strings and elsewhere
      Reported-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      LKML-Reference: <20101025115736.41d51abe.sfr@canb.auug.org.au>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2c78ffec
  7. 24 10月, 2010 3 次提交