1. 01 9月, 2009 1 次提交
    • P
      sh: nmi_debug support. · 1e1030dc
      Paul Mundt 提交于
      This implements support for NMI debugging that was shamelessly copied
      from the avr32 port. A bit of special magic is needed in the interrupt
      exception path given that the NMI exception handler is stubbed in to the
      regular exception handling table despite being reported in INTEVT. So we
      mangle the lookup and kick off an EXPEVT-style exception dispatch from
      the INTEVT path for exceptions that do_IRQ() has no chance of handling.
      As a result, we also drop the evt2irq() conversion from the do_IRQ() path
      and just do it in assembly.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      1e1030dc
  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. 16 8月, 2009 1 次提交
  4. 23 6月, 2009 1 次提交
  5. 02 4月, 2009 1 次提交
  6. 22 12月, 2008 1 次提交
  7. 08 9月, 2008 2 次提交
  8. 29 7月, 2008 1 次提交
  9. 28 7月, 2008 1 次提交
    • A
      sh/kernel/ cleanups · 4c1cfab1
      Adrian Bunk 提交于
      This patch contains the following cleanups:
      - make the following needlessly global code static:
        - cf-enabler.c: cf_init()
        - cpu/clock.c: __clk_enable()
        - cpu/clock.c: __clk_disable()
        - process_32.c: default_idle()
        - time_32.c: struct clocksource_sh
        - timers/timer-tmu.c: struct tmu_timer_ops
      - remove the following unused functions (no CONFIG_BLK_DEV_FD on sh):
        - process_{32,64}.c: disable_hlt()
        - process_{32,64}.c: enable_hlt()
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      4c1cfab1
  10. 19 4月, 2008 1 次提交
  11. 14 2月, 2008 1 次提交
    • M
      sh: trapped io support V2 · e7cc9a73
      Magnus Damm 提交于
      The idea is that we want to get rid of the in/out/readb/writeb callbacks from
      the machvec and replace that with simple inline read and write operations to
      memory. Fast and simple for most hardware devices (think pci).
      
      Some devices require special treatment though - like 16-bit only CF devices -
      so we need to have some method to hook in callbacks.
      
      This patch makes it possible to add a per-device trap generating filter. This
      way we can get maximum performance of sane hardware - which doesn't need this
      filter - and crappy hardware works but gets punished by a performance hit.
      
      V2 changes things around a bit and replaces io access callbacks with a
      simple minimum_bus_width value. In the future we can add stride as well.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      e7cc9a73
  12. 28 1月, 2008 9 次提交
  13. 17 10月, 2007 1 次提交
    • O
      increase AT_VECTOR_SIZE to terminate saved_auxv properly · 4f9a58d7
      Olaf Hering 提交于
      include/asm-powerpc/elf.h has 6 entries in ARCH_DLINFO.  fs/binfmt_elf.c
      has 14 unconditional NEW_AUX_ENT entries and 2 conditional NEW_AUX_ENT
      entries.  So in the worst case, saved_auxv does not get an AT_NULL entry at
      the end.
      
      The saved_auxv array must be terminated with an AT_NULL entry.  Make the
      size of mm_struct->saved_auxv arch dependend, based on the number of
      ARCH_DLINFO entries.
      Signed-off-by: NOlaf Hering <olh@suse.de>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: Jakub Jelinek <jakub@redhat.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4f9a58d7
  14. 21 9月, 2007 1 次提交
  15. 20 7月, 2007 1 次提交
  16. 11 6月, 2007 1 次提交
  17. 08 6月, 2007 1 次提交
  18. 09 5月, 2007 2 次提交
  19. 07 5月, 2007 1 次提交
  20. 28 3月, 2007 1 次提交
    • P
      sh: Fixup __cmpxchg() compile breakage with gcc4. · 310f7963
      Paul Mundt 提交于
      As reported by Manuel:
      
      When I build linux with GCC-4.x and enable
      CONFIG_CC_OPTIMIZE_FOR_SIZE linking fails with this error:
      
        LD      .tmp_vmlinux1
        kernel/built-in.o: In function '__cmpxchg_called_with_bad_pointer'
        make[1]: *** [.tmp_vmlinux1] Error 1
        make: *** [_all] Error 2
      
      This ended up being an inlining problem, fixed by explicitly
      including linux/compiler.h and grabbing the definitions from there.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      310f7963
  21. 06 12月, 2006 1 次提交
  22. 19 10月, 2006 1 次提交
    • P
      sh: Fix exception_handling_table alignment. · 1f666587
      Paul Mundt 提交于
      With the recent change ripping out interrupt_table, explicit
      padding of the table was missing, causing bad things to happen
      when manually inserting handlers in to the table. This problem
      particularly showed up in relation to do_fpu_state_restore()
      which was inserted quite deeply in to the table and ended up
      scribbling over a slab object.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      1f666587
  23. 27 9月, 2006 7 次提交
  24. 15 7月, 2006 1 次提交
    • S
      [PATCH] remove set_wmb - arch removal · 52393ccc
      Steven Rostedt 提交于
      set_wmb should not be used in the kernel because it just confuses the
      code more and has no benefit.  Since it is not currently used in the
      kernel this patch removes it so that new code does not include it.
      
      All archs define set_wmb(var, value) to do { var = value; wmb(); }
      while(0) except ia64 and sparc which use a mb() instead.  But this is
      still moot since it is not used anyway.
      
      Hasn't been tested on any archs but x86 and x86_64 (and only compiled
      tested)
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      52393ccc