1. 22 8月, 2009 2 次提交
  2. 21 8月, 2009 1 次提交
    • M
      sh: unwinder: Introduce UNWINDER_BUG() and UNWINDER_BUG_ON() · b344e24a
      Matt Fleming 提交于
      We can't assume that if we execute the unwinder code and the unwinder
      was already running that it has faulted. Clearly two kernel threads can
      invoke the unwinder at the same time and may be running simultaneously.
      
      The previous approach used BUG() and BUG_ON() in the unwinder code to
      detect whether the unwinder was incapable of unwinding the stack, and
      that the next available unwinder should be used instead. A better
      approach is to explicitly invoke a trap handler to switch unwinders when
      the current unwinder cannot continue.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      b344e24a
  3. 13 8月, 2009 1 次提交
    • M
      sh: Allow multiple stack unwinders to be setup · bf61ad1f
      Matt Fleming 提交于
      Provide an interface for registering stack unwinders, where each
      unwinder is given a rating that describes its accuracy and
      complexity. The more accurate an unwinder is, the more complex it is.
      
      If a the current stack unwinder faults, then the stack unwinder with the
      next highest accuracy will be used in its place (provided one is
      available). For example, this allows unwinders, such as the DWARF
      unwinder, to liberally sprinkle BUG()s to catch badly formed DWARF debug
      info.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      bf61ad1f