• Vivek Goyal's avatar
    [PATCH] kdump: save registers early (inline functions) · e996e581
    Vivek Goyal authored
    - If system panics then cpu register states are captured through funciton
      crash_get_current_regs().  This is not a inline function hence a stack frame
      is pushed on to the stack and then cpu register state is captured.  Later
      this frame is popped and new frames are pushed (machine_kexec).
    
    - In theory this is not very right as we are capturing register states for a
      frame and that frame is no more valid.  This seems to have created back
      trace problems for ppc64.
    
    - This patch fixes it up.  The very first thing it does after entering
      crash_kexec() is to capture the register states.  Anyway we don't want the
      back trace beyond crash_kexec().  crash_get_current_regs() has been made
      inline
    
    - crash_setup_regs() is the top architecture dependent function which should
      be responsible for capturing the register states as well as to do some
      architecture dependent tricks.  For ex.  fixing up ss and esp for i386.
      crash_setup_regs() has also been made inline to ensure no new call frame is
      pushed onto stack.
    Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    e996e581
kexec.c 27.6 KB