1. 27 Jan, 2007 1 commit
    • David S. Miller's avatar
      [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. · 86d43258
      David S. Miller authored
      Mirror the logic in the sun4u handler, we have to update
      both registers even when we branch out to window fault
      fixup handling.
      
      The way it works is that if we are in etrap processing a
      fault already, g4/g5 holds the original fault information.
      If we take a window spill fault while doing etrap, then
      we put the window spill fault info into g4/g5 and this is
      what the top-level fault handler ends up processing first.
      
      Then we retry the originally faulting instruction, and
      process the original fault at that time.
      
      This is all necessary because of how constrained the trap
      registers are in these code paths.  These cases trigger
      very rarely, so even if there is some performance implication
      it's doesn't happen very often.  In fact the rarity is why
      it took so long to trigger and find this particular bug.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86d43258
  2. 26 Jan, 2007 39 commits