1. 19 5月, 2008 1 次提交
    • P
      sh: Fix up restorer in debug_trap exception return path. · 336f1d32
      Paul Mundt 提交于
      There are a few different types of debug trap exceptions, though now
      that they are all going through a special jump table, the restorer needs
      to be unified as well.
      
      Presently this is falling through the ret_from_fork path, which more or
      less does the right thing on SH-3/4 whilst being completely unsuitable on
      MMU-less targets.
      
      Ultimately what we want here is a branch through the platform's
      restore_all directly, without worrying about the retval being clobbered.
      We can accomplish that through a branch to __restore_all directly, so
      switch it so we come back from the jump table and branch to the restorer.
      
      This fixes up a recursion in the nommu WARN_ON() path, as well as some
      other userspace nastiness where said recursion caused serious stack
      corruption.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      336f1d32
  2. 16 5月, 2008 1 次提交
  3. 28 1月, 2008 2 次提交
  4. 28 9月, 2007 1 次提交
    • P
      sh: Conditionalize gUSA support. · 83662461
      Paul Mundt 提交于
      This conditionalizes gUSA support. gUSA is not supported on
      SMP configurations, and it's not necessary there anyways due
      to having other atomicity options (ie, movli.l/movco.l).
      
      Anything implementing the LL/SC semantics (all SH-4A CPUs)
      can switch to userspace atomicity implementations without
      requiring gUSA. This is left default-enabled on all UP so
      that glibc doesn't break.
      
      Those that know what they are doing can disable this explicitly.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      83662461
  5. 05 3月, 2007 1 次提交
  6. 13 2月, 2007 1 次提交
    • P
      sh: Use a jump call table for debug trap handlers. · f413d0d9
      Paul Mundt 提交于
      This rips out most of the needlessly complicated sh_bios and kgdb
      trap handling, and forces it all through a common fast dispatch path.
      As more debug traps are inserted, it's important to keep them in sync
      for all of the parts, not just SH-3/4.
      
      As the SH-2 parts are unable to do traps in the >= 0x40 range, we
      restrict the debug traps to the 0x30-0x3f range on all parts, and
      also bump the kgdb breakpoint trap down in to this range (from 0xff
      to 0x3c) so it's possible to use for nommu.
      
      Optionally, this table can be padded out to catch spurious traps for
      SH-3/4, but we don't do that yet..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      f413d0d9
  7. 12 12月, 2006 1 次提交
  8. 06 12月, 2006 3 次提交