1. 15 7月, 2013 1 次提交
    • P
      sh: delete __cpuinit usage from all sh files · 4603f53a
      Paul Gortmaker 提交于
      The __cpuinit type of throwaway sections might have made sense
      some time ago when RAM was more constrained, but now the savings
      do not offset the cost and complications.  For example, the fix in
      commit 5e427ec2 ("x86: Fix bit corruption at CPU resume time")
      is a good example of the nasty type of bugs that can be created
      with improper use of the various __init prefixes.
      
      After a discussion on LKML[1] it was decided that cpuinit should go
      the way of devinit and be phased out.  Once all the users are gone,
      we can then finally remove the macros themselves from linux/init.h.
      
      Note that some harmless section mismatch warnings may result, since
      notify_cpu_starting() and cpu_up() are arch independent (kernel/cpu.c)
      are flagged as __cpuinit  -- so if we remove the __cpuinit from
      arch specific callers, we will also get section mismatch warnings.
      As an intermediate step, we intend to turn the linux/init.h cpuinit
      content into no-ops as early as possible, since that will get rid
      of these warnings.  In any case, they are temporary and harmless.
      
      This removes all the arch/sh uses of the __cpuinit macros from
      all C files.  Currently sh does not have any __CPUINIT used in
      assembly files.
      
      [1] https://lkml.org/lkml/2013/5/20/589
      
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: linux-sh@vger.kernel.org
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      4603f53a
  2. 24 5月, 2012 1 次提交
  3. 17 5月, 2012 1 次提交
    • S
      fork: move the real prepare_to_copy() users to arch_dup_task_struct() · 55ccf3fe
      Suresh Siddha 提交于
      Historical prepare_to_copy() is mostly a no-op, duplicated for majority of
      the architectures and the rest following the x86 model of flushing the extended
      register state like fpu there.
      
      Remove it and use the arch_dup_task_struct() instead.
      Suggested-by: NOleg Nesterov <oleg@redhat.com>
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Link: http://lkml.kernel.org/r/1336692811-30576-1-git-send-email-suresh.b.siddha@intel.comAcked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Chris Zankel <chris@zankel.net>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Mike Frysinger <vapier@gentoo.org>
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Aurelien Jacquiot <a-jacquiot@ti.com>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Jonas Bonn <jonas@southpole.se>
      Cc: James E.J. Bottomley <jejb@parisc-linux.org>
      Cc: Helge Deller <deller@gmx.de>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Lennox Wu <lennox.wu@gmail.com>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Chris Metcalf <cmetcalf@tilera.com>
      Cc: Jeff Dike <jdike@addtoit.com>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      55ccf3fe
  4. 08 5月, 2012 1 次提交
  5. 19 4月, 2012 1 次提交
  6. 24 3月, 2011 1 次提交
  7. 23 3月, 2011 1 次提交
  8. 21 4月, 2010 1 次提交
  9. 30 3月, 2010 1 次提交
    • T
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking... · 5a0e3ad6
      Tejun Heo 提交于
      include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
      
      percpu.h is included by sched.h and module.h and thus ends up being
      included when building most .c files.  percpu.h includes slab.h which
      in turn includes gfp.h making everything defined by the two files
      universally available and complicating inclusion dependencies.
      
      percpu.h -> slab.h dependency is about to be removed.  Prepare for
      this change by updating users of gfp and slab facilities include those
      headers directly instead of assuming availability.  As this conversion
      needs to touch large number of source files, the following script is
      used as the basis of conversion.
      
        http://userweb.kernel.org/~tj/misc/slabh-sweep.py
      
      The script does the followings.
      
      * Scan files for gfp and slab usages and update includes such that
        only the necessary includes are there.  ie. if only gfp is used,
        gfp.h, if slab is used, slab.h.
      
      * When the script inserts a new include, it looks at the include
        blocks and try to put the new include such that its order conforms
        to its surrounding.  It's put in the include block which contains
        core kernel includes, in the same order that the rest are ordered -
        alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
        doesn't seem to be any matching order.
      
      * If the script can't find a place to put a new include (mostly
        because the file doesn't have fitting include block), it prints out
        an error message indicating which .h file needs to be added to the
        file.
      
      The conversion was done in the following steps.
      
      1. The initial automatic conversion of all .c files updated slightly
         over 4000 files, deleting around 700 includes and adding ~480 gfp.h
         and ~3000 slab.h inclusions.  The script emitted errors for ~400
         files.
      
      2. Each error was manually checked.  Some didn't need the inclusion,
         some needed manual addition while adding it to implementation .h or
         embedding .c file was more appropriate for others.  This step added
         inclusions to around 150 files.
      
      3. The script was run again and the output was compared to the edits
         from #2 to make sure no file was left behind.
      
      4. Several build tests were done and a couple of problems were fixed.
         e.g. lib/decompress_*.c used malloc/free() wrappers around slab
         APIs requiring slab.h to be added manually.
      
      5. The script was run on all .h files but without automatically
         editing them as sprinkling gfp.h and slab.h inclusions around .h
         files could easily lead to inclusion dependency hell.  Most gfp.h
         inclusion directives were ignored as stuff from gfp.h was usually
         wildly available and often used in preprocessor macros.  Each
         slab.h inclusion directive was examined and added manually as
         necessary.
      
      6. percpu.h was updated not to include slab.h.
      
      7. Build test were done on the following configurations and failures
         were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my
         distributed build env didn't work with gcov compiles) and a few
         more options had to be turned off depending on archs to make things
         build (like ipr on powerpc/64 which failed due to missing writeq).
      
         * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
         * powerpc and powerpc64 SMP allmodconfig
         * sparc and sparc64 SMP allmodconfig
         * ia64 SMP allmodconfig
         * s390 SMP allmodconfig
         * alpha SMP allmodconfig
         * um on x86_64 SMP allmodconfig
      
      8. percpu.h modifications were reverted so that it could be applied as
         a separate patch and serve as bisection point.
      
      Given the fact that I had only a couple of failures from tests on step
      6, I'm fairly confident about the coverage of this conversion patch.
      If there is a breakage, it's likely to be something in one of the arch
      headers which should be easily discoverable easily on most builds of
      the specific arch.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Guess-its-ok-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
      5a0e3ad6
  10. 13 1月, 2010 1 次提交
    • P
      sh: Move over to dynamically allocated FPU context. · 0ea820cf
      Paul Mundt 提交于
      This follows the x86 xstate changes and implements a task_xstate slab
      cache that is dynamically sized to match one of hard FP/soft FP/FPU-less.
      
      This also tidies up and consolidates some of the SH-2A/SH-4 FPU
      fragmentation. Now fpu state restorers are commonly defined, with the
      init_fpu()/fpu_init() mess reworked to follow the x86 convention.
      The fpu_init() register initialization has been replaced by xstate setup
      followed by writing out to hardware via the standard restore path.
      
      As init_fpu() now performs a slab allocation a secondary lighterweight
      restorer is also introduced for the context switch.
      
      In the future the DSP state will be rolled in here, too.
      
      More work remains for math emulation and the SH-5 FPU, which presently
      uses its own special (UP-only) interfaces.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      0ea820cf
  11. 12 1月, 2010 2 次提交
  12. 28 1月, 2008 1 次提交
  13. 20 10月, 2007 1 次提交
  14. 28 9月, 2007 2 次提交
  15. 31 7月, 2007 1 次提交
  16. 26 7月, 2007 1 次提交
  17. 11 6月, 2007 1 次提交
  18. 08 6月, 2007 2 次提交
  19. 21 5月, 2007 1 次提交
    • P
      sh: sr.bl toggling around idle sleep. · f3a9022f
      Paul Mundt 提交于
      As pointed out by Saito-san, without the sr.bl manipulation we can
      occasionally hit delays in the idle loop due to interrupt handling, so
      ensure that interrupts are blocked before going to sleep.
      
      At the same time, we throw in TIF_POLLING_NRFLAG for the !hlt_counter
      case (primarily used by the ST-40 parts).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      f3a9022f
  20. 09 5月, 2007 5 次提交
    • P
      sh: clockevent/clocksource/hrtimers/nohz TMU support. · 57be2b48
      Paul Mundt 提交于
      This adds basic support for clockevents and clocksources,
      presently only implemented for TMU-based systems (which
      are the majority of SH-3 and SH-4 systems).
      
      The old NO_IDLE_HZ implementation is also dropped completely,
      the only users of this were on TMU-based systems anyways.
      
      More work needs to be done to generalize the TMU handling,
      in that the current implementation is rather tied to the
      notion of TMU0 and TMU1 utilization.
      
      Additionally, as more SH timers switch over to this scheme,
      we'll be able to gut most of the remaining system timer
      infrastructure that existed before.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      57be2b48
    • P
      sh: Convert to common die chain. · b118ca57
      Paul Mundt 提交于
      This went in immediately after SH added the die chain notifiers,
      so move over to that instead..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b118ca57
    • P
      sh: Fix PC adjustments for varying opcode length. · 53f983a9
      Paul Mundt 提交于
      There are a few different cases for figuring out how to
      size the instruction. We read in the instruction located
      at regs->pc - 4 when rewinding the opcode to figure out if
      there's a 32-bit opcode before the faulting instruction, with
      a default of a - 2 adjustment on a mismatch. In practice this
      works for the cases where pc - 4 is just another 16-bit opcode,
      or we happen to have a 32-bit and a 16-bit immediately
      preceeding the pc value.
      
      In the cases where we aren't rewinding, this is much less ugly..
      
      We also don't bother fixing up the places where we're explicitly
      dealing with 16-bit instructions, since this might lead to
      confusion regarding the encoding size possibilities on other
      CPU variants.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      53f983a9
    • P
      sh: Support for SH-2A 32-bit opcodes. · bd079997
      Paul Mundt 提交于
      SH-2A supports both 16 and 32-bit instructions, add a simple helper
      for figuring out the instruction size in the places where there are
      hardcoded 16-bit assumptions.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      bd079997
    • P
      sh: generic quicklist support. · 5f8c9908
      Paul Mundt 提交于
      This moves SH over to the generic quicklists. As per x86_64,
      we have special mappings for the PGDs, so these go on their
      own list..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      5f8c9908
  21. 07 5月, 2007 2 次提交
  22. 05 3月, 2007 1 次提交
  23. 13 2月, 2007 3 次提交
    • P
      sh: Fixup cpu_data references for the non-boot CPUs. · 11c19656
      Paul Mundt 提交于
      There are a lot of bogus cpu_data-> references that only end up working
      for the boot CPU, convert these to current_cpu_data to fixup SMP.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      11c19656
    • P
      sh: Use a per-cpu ASID cache. · aec5e0e1
      Paul Mundt 提交于
      Previously this was implemented using a global cache, cache
      this per-CPU instead and bump up the number of context IDs to
      match NR_CPUS.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      aec5e0e1
    • 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
  24. 12 12月, 2006 2 次提交
    • P
      sh: Fix get_wchan(). · b652c23c
      Paul Mundt 提交于
      Some time ago the schedule frame size changed and we failed to reflect
      this in get_wchan() at the time. This first popped up as a problem on
      SH7751R where schedule_frame ended up being unaligned and generating
      an unaligned trap. This fixes it up again..
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b652c23c
    • P
      sh: BUG() handling through trapa vector. · dc34d312
      Paul Mundt 提交于
      Previously we haven't been doing anything with verbose BUG() reporting,
      and we've been relying on the oops path for handling BUG()'s, which is
      rather sub-optimal.
      
      This switches BUG handling to use a fixed trapa vector (#0x3e) where we
      construct a small bug frame post trapa instruction to get the context
      right. This also makes it trivial to wire up a DIE_BUG for the atomic
      die chain, which we couldn't really do before.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      dc34d312
  25. 06 12月, 2006 1 次提交
  26. 19 10月, 2006 1 次提交
    • P
      sh: Proper show_stack/show_trace() implementation. · 6b002230
      Paul Mundt 提交于
      This splits out some of the previous show_stack() implementation which
      was mostly doing the show_trace() work without actually dumping any of
      the stack contents. This now gets split in to two sections, where we
      do the fetching of the stack pointer and subsequent stack dumping in
      show_stack(), while moving the call trace in to show_trace().
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      6b002230
  27. 12 10月, 2006 1 次提交
  28. 27 9月, 2006 2 次提交