1. 16 4月, 2014 29 次提交
  2. 22 3月, 2014 1 次提交
    • G
      clocksource: CMT, MTU2, TMU and STI should depend on GENERIC_CLOCKEVENTS · 87291a92
      Geert Uytterhoeven 提交于
      If GENERIC_CLOCKEVENTS=n:
      
      drivers/clocksource/sh_cmt.c:54:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_cmt.c: In function 'sh_cmt_interrupt':
      drivers/clocksource/sh_cmt.c:407:23: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function)
      
      drivers/clocksource/sh_mtu2.c:44:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_mtu2.c: In function 'ced_to_sh_mtu2':
      drivers/clocksource/sh_mtu2.c:184:70: warning: initialization from incompatible pointer type [enabled by default]
      drivers/clocksource/sh_mtu2.c: At top level:
      drivers/clocksource/sh_mtu2.c:188:16: warning: 'enum clock_event_mode' declared inside parameter list [enabled by default]
      
      drivers/clocksource/sh_tmu.c:45:28: error: field 'ced' has incomplete type
      drivers/clocksource/sh_tmu.c: In function 'sh_tmu_interrupt':
      drivers/clocksource/sh_tmu.c:207:21: error: 'CLOCK_EVT_MODE_ONESHOT' undeclared (first use in this function)
      
      drivers/clocksource/em_sti.c:44:28: error: field 'ced' has incomplete type
      drivers/clocksource/em_sti.c: In function 'ced_to_em_sti':
      drivers/clocksource/em_sti.c:251:69: warning: initialization from incompatible pointer type [enabled by default]
      drivers/clocksource/em_sti.c: At top level:
      drivers/clocksource/em_sti.c:255:16: warning: 'enum clock_event_mode' declared inside parameter list [enabled by default]
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Cc: Magnus Damm <damm@opensource.se>
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Link: http://lkml.kernel.org/r/1395324352-9146-1-git-send-email-geert@linux-m68k.orgSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      87291a92
  3. 20 3月, 2014 1 次提交
    • S
      clocksource, dummy-timer: Fix CPU hotplug callback registration · 8daa127f
      Srivatsa S. Bhat 提交于
      Subsystems that want to register CPU hotplug callbacks, as well as perform
      initialization for the CPUs that are already online, often do it as shown
      below:
      
      	get_online_cpus();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	register_cpu_notifier(&foobar_cpu_notifier);
      
      	put_online_cpus();
      
      This is wrong, since it is prone to ABBA deadlocks involving the
      cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
      with CPU hotplug operations).
      
      Instead, the correct and race-free way of performing the callback
      registration is:
      
      	cpu_notifier_register_begin();
      
      	for_each_online_cpu(cpu)
      		init_cpu(cpu);
      
      	/* Note the use of the double underscored version of the API */
      	__register_cpu_notifier(&foobar_cpu_notifier);
      
      	cpu_notifier_register_done();
      
      Fix the clocksource dummy-timer code by using this latter form of callback
      registration.
      
      Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@kernel.org>
      Signed-off-by: NSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8daa127f
  4. 12 3月, 2014 9 次提交