1. 19 Nov, 2012 1 commit
    • Steven Rostedt's avatar
      x86_32: Return actual stack when requesting sp from regs · 6c8d8b3c
      Steven Rostedt authored
      As x86_32 traps do not save sp when taken in kernel mode, we need to
      accommodate the sp when requesting to get the register.
      
      This affects kprobes.
      
      Before:
      
       # echo 'p:ftrace sys_read+4 s=%sp' > /debug/tracing/kprobe_events
       # echo 1 > /debug/tracing/events/kprobes/enable
       # cat trace
                  sshd-1345  [000] d...   489.117168: ftrace: (sys_read+0x4/0x70) s=b7e96768
                  sshd-1345  [000] d...   489.117191: ftrace: (sys_read+0x4/0x70) s=b7e96768
                   cat-1447  [000] d...   489.117392: ftrace: (sys_read+0x4/0x70) s=5a7
                   cat-1447  [001] d...   489.118023: ftrace: (sys_read+0x4/0x70) s=b77ad05f
                  less-1448  [000] d...   489.118079: ftrace: (sys_read+0x4/0x70) s=b7762e06
                  less-1448  [000] d...   489.118117: ftrace: (sys_read+0x4/0x70) s=b7764970
      
      After:
                  sshd-1352  [000] d...   362.348016: ftrace: (sys_read+0x4/0x70) s=f3febfa8
                  sshd-1352  [000] d...   362.348048: ftrace: (sys_read+0x4/0x70) s=f3febfa8
                  bash-1355  [001] d...   362.348081: ftrace: (sys_read+0x4/0x70) s=f5075fa8
                  sshd-1352  [000] d...   362.348082: ftrace: (sys_read+0x4/0x70) s=f3febfa8
                  sshd-1352  [000] d...   362.690950: ftrace: (sys_read+0x4/0x70) s=f3febfa8
                  bash-1355  [001] d...   362.691033: ftrace: (sys_read+0x4/0x70) s=f5075fa8
      
      Link: http://lkml.kernel.org/r/1342208654.30075.22.camel@gandalf.stny.rr.comReviewed-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      6c8d8b3c
  2. 02 Nov, 2012 1 commit
    • Salman Qazi's avatar
      x86: Don't clobber top of pt_regs in nested NMI · 28696f43
      Salman Qazi authored
      The nested NMI modifies the place (instruction, flags and stack)
      that the first NMI will iret to.  However, the copy of registers
      modified is exactly the one that is the part of pt_regs in
      the first NMI.  This can change the behaviour of the first NMI.
      
      In particular, Google's arch_trigger_all_cpu_backtrace handler
      also prints regions of memory surrounding addresses appearing in
      registers.  This results in handled exceptions, after which nested NMIs
      start coming in.  These nested NMIs change the value of registers
      in pt_regs.  This can cause the original NMI handler to produce
      incorrect output.
      
      We solve this problem by interchanging the position of the preserved
      copy of the iret registers ("saved") and the copy subject to being
      trampled by nested NMI ("copied").
      
      Link: http://lkml.kernel.org/r/20121002002919.27236.14388.stgit@dungbeetle.mtv.corp.google.comSigned-off-by: default avatarSalman Qazi <sqazi@google.com>
      [ Added a needed CFI_ADJUST_CFA_OFFSET ]
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      28696f43
  3. 24 Oct, 2012 9 commits
  4. 23 Oct, 2012 13 commits
  5. 22 Oct, 2012 16 commits