1. 14 8月, 2009 6 次提交
  2. 13 8月, 2009 4 次提交
  3. 04 8月, 2009 4 次提交
  4. 29 7月, 2009 2 次提交
    • S
      sh: Rework irqflags tracing to fix up CONFIG_PROVE_LOCKING. · fd78a76a
      Stuart Menefy 提交于
      This cleans up the irqflags tracing code quite a bit and ties it
      in to various missing callsites that caused an imbalance when
      CONFIG_PROVE_LOCKING was enabled.
      
      Previously this was catching on:
      
       987 #ifdef CONFIG_PROVE_LOCKING
       988     DEBUG_LOCKS_WARN_ON(!p->hardirqs_enabled);
       989     DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
       990 #endif
       991     retval = -EAGAIN;
      
      with hardirqs being doubly enabled, and subsequently bailing out
      with the following call trace:
      
      	Call trace:
      	[<88035224>] __lock_acquire+0x616/0x6a6
      	[<88015a8c>] do_fork+0xf8/0x2b0
      	[<880331ec>] trace_hardirqs_on_caller+0xd4/0x114
      	[<88241074>] _spin_unlock_irq+0x20/0x64
      	[<88035224>] __lock_acquire+0x616/0x6a6
      	[<8800386c>] kernel_thread+0x48/0x70
      	[<88024ecc>] ____call_usermodehelper+0x0/0x110
      	[<88024ecc>] ____call_usermodehelper+0x0/0x110
      	[<88003894>] kernel_thread_helper+0x0/0x14
      	[<88024bac>] __call_usermodehelper+0x38/0x70
      	[<88025dc0>] worker_thread+0x150/0x274
      	[<88035b9c>] lock_release+0x0/0x198
      	[<88024b74>] __call_usermodehelper+0x0/0x70
      	[<88028cf0>] autoremove_wake_function+0x0/0x30
      	[<88028bf2>] kthread+0x3e/0x70
      	[<88025c70>] worker_thread+0x0/0x274
      	[<8800389c>] kernel_thread_helper+0x8/0x14
      	[<88028bb4>] kthread+0x0/0x70
      	[<88003894>] kernel_thread_helper+0x0/0x14
      Reported-by: NNobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
      Signed-off-by: NStuart Menefy <stuart.menefy@st.com>
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      fd78a76a
    • P
      Revert "sh: Bump the earlytimer bits back to time_init()." · 82b24221
      Paul Mundt 提交于
      This reverts commit 1d29ebeb.
      
      Bumping up the earlytimer initialization causes IRQs to be enabled too
      early, which blows up lockdep:
      
      ...
      NR_IRQS:256 nr_irqs:256
      ------------[ cut here ]------------
      Badness at kernel/lockdep.c:2128
      
      Pid : 0, Comm:          swapper
      CPU : 0                 Not tainted  (2.6.31-rc3-00205-g3ed6e129-dirty #2443)
      
      PC is at trace_hardirqs_on_caller+0x48/0x10c
      PR is at trace_hardirqs_on_caller+0x3c/0x10c
      ...
      
      Revert it back to late_time_init time, which fixes up lockdep.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      82b24221
  5. 23 7月, 2009 2 次提交
    • M
      sh: convert processor device setup functions to arch_initcall() · 955c9863
      Magnus Damm 提交于
      Convert the processor platform device setup
      functions from __initcall() and sometimes
      device_initcall() to arch_initcall().
      
      This makes sure that the platform devices are
      registered a bit earlier so the devices are
      available when drivers register using initcall
      levels earlier than device_initcall().
      
      A good example is platform devices needed by
      i2c-sh_mobile.c which registers a bit earlier
      using subsys_initcall().
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      955c9863
    • M
      usb: m66592-udc platform data on_chip support · 2c59b0b7
      Magnus Damm 提交于
      Convert the m66592-udc driver to use the on_chip flag
      from platform data to enable on chip behaviour instead
      of relying on CONFIG_SUPERH_BUILT_IN_M66592 ugliness.
      
      This makes the code cleaner and also allows us to support
      both external and internal m66592 with the same kernel.
      
      It also makes the Kconfig part more future proof since
      we with this patch can add support for new processors
      with on-chip m66592 without modifying the Kconfig.
      
      The patch adds a m66592 header file for platform data
      and ties in platform data to the existing m66592 devices.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2c59b0b7
  6. 20 7月, 2009 4 次提交
  7. 14 7月, 2009 1 次提交
  8. 11 7月, 2009 6 次提交
    • P
      sh: Use DECLARE_EXPORT() for mcount symbol export. · fe279320
      Paul Mundt 提交于
      The function prototype for mcount is not defined if we are not building
      with ftrace support enabled, so use DECLARE_EXPORT() to stub one in.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      fe279320
    • P
      sh: Replace DEBUG_STACKOVERFLOW with STACK_DEBUG. · 9f14b84a
      Paul Mundt 提交于
      STACK_DEBUG ties in to mcount in order to do function-granular stack
      overflow checks as opposed to lazily checking from IRQ context. As the
      default is nohz, the frequency of overflow checking is too irregular to
      catch much useful information, and so the mcount approach employed by
      sparc64 is adopted instead.
      
      This kills off the old check entirely from the do_IRQ() path and now
      adopts CONFIG_MCOUNT instead.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      9f14b84a
    • P
      sh: Decouple mcount from ftrace. · 473d1cf4
      Paul Mundt 提交于
      This adds a general CONFIG_MCOUNT in order to permit mcount generation
      without ftrace support. This is primarily for allowing platforms to
      enable aggressive stack overflow checking without having to enable ftrace
      support. Based on the sparc64 implementation.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      473d1cf4
    • M
      sh: Mark __switch_to() as __notrace_funcgraph · 7816fecd
      Matt Fleming 提交于
      Annotate __switch_to() so that the function graph tracer does not try to
      trace it. Use __notrace_funcgraph, as opposed to notrace, so that other
      tracers can continue to trace __switch_to().
      
      The reason that we don't want to trace __switch_to() with the function
      graph tracer is because of how the return address stack in task_struct
      is implemented. When we enter __switch_to we store the real return
      address on prev's ret_stack. When we return from __switch_to() we've
      patched the return address on the kernel stack to be
      return_to_handler. Calling return_to_handler we do,
      
             -> ftrace_return_to_handler()
             	  -> ftrace_pop_return_ftrace()
      
      Which tries to pop the real return address from current->ret_stack. The
      problem being that we stored the return address on prev->ret_stack, but
      current now points to next, and next->ret_stack doesn't contain the
      correct return address (and is possibly even empty).
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      7816fecd
    • M
      sh: Function graph tracer support · 327933f5
      Matt Fleming 提交于
      Add both dynamic and static function graph tracer support for sh.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      327933f5
    • M
      sh: Provide diagnostic kernel stack checks · b99610fb
      Matt Fleming 提交于
      Enable kernel stack checking code in both the dynamic ftrace and mcount
      code paths. Check the stack to see if it's overflowing and make sure
      that the stack pointer contains an address that's either in init_stack
      or after the bss.
      Signed-off-by: NMatt Fleming <matt@console-pimps.org>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      b99610fb
  9. 10 7月, 2009 1 次提交
  10. 06 7月, 2009 1 次提交
  11. 04 7月, 2009 3 次提交
    • M
      sh: cpuidle for SuperH Mobile using hwblk · 7426394f
      Magnus Damm 提交于
      This patch adds cpuidle support for SuperH Mobile.
      
      The sleep mode selected by cpuidle is compared with
      the mode selected by the hwblk sleep code and the
      best allowed mode is entered.
      
      At this point "Sleep mode" and "Sleep mode + SF" are
      supported. This code can easily be extended to support
      "Software suspend mode", but the assembly code must
      first be updated to avoid loosing interrupts.
      
      Also, update the code to only copy the assembly snippet
      into internal memory once at bootup.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      7426394f
    • M
      sh: hwblk for sh7722 · a61c1a63
      Magnus Damm 提交于
      This patch contains the sh7722 specific hwblk implementation.
      
      Hwblk ids are added to the processor specific header file,
      module stop bits and areas are kept track of as hwblks,
      clocks are converted to make use of the shared hwblk code.
      Code to determine allowed sleep modes is also added.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a61c1a63
    • M
      sh: hwblk base implementation · 79714acb
      Magnus Damm 提交于
      This patch is the hwblk base implementation, containing
      structures and shared functions dealing with hardware blocks.
      
      A each processor model should provide a list of hwblks and
      describe which module stop bit that is associated with each
      hwblck and how the hwblks are grouped together into areas.
      
      The shared code keeps track of the usage count for each
      hwblk and the areas. Fallback implementations for processor
      specific code are also kept as weak symbols.
      
      The clock framework, the runtime pm code and cpuidle will
      all tie into this hwblk implementation.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      79714acb
  12. 03 7月, 2009 1 次提交
  13. 23 6月, 2009 2 次提交
  14. 19 6月, 2009 1 次提交
  15. 18 6月, 2009 2 次提交