Thread (11 messages) 11 messages, 5 authors, 2011-06-02

[PATCH 3/3] mach-u300: cleanup clockevent code

STALE5600d

From: Thomas Gleixner <hidden>
Date: 2011-06-01 10:03:03
Subsystem: high-resolution timers, timer wheel, clockevents, the rest · Maintainers: Anna-Maria Behnsen, Frederic Weisbecker, Thomas Gleixner, Linus Torvalds

On Wed, 1 Jun 2011, Russell King - ARM Linux wrote:
On Wed, Jun 01, 2011 at 10:34:46AM +0200, Thomas Gleixner wrote:
quoted
But yeah, we can make it conditional for SMP and simply set
cpumask_of(0) in the UP case.
Or cpumask_of(smp_processor_id()) which would also cover the non-CPU0 boot
cases (provided its called on the boot CPU.)
Something like the below should work for both UP and SMP
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c
index c027d4f..739801b 100644
--- a/kernel/time/clockevents.c
+++ b/kernel/time/clockevents.c
@@ -173,6 +173,12 @@ static void clockevents_notify_released(void)
 	}
 }
 
+#ifdef CONFIG_SMP
+# define CPU_MASK_CHECK(x)		WARN_ON(!x)
+#else
+# define CPU_MASK_CHECK(x)		(!x)
+#endif
+
 /**
  * clockevents_register_device - register a clock event device
  * @dev:	device to register
@@ -182,7 +188,8 @@ void clockevents_register_device(struct clock_event_device *dev)
 	unsigned long flags;
 
 	BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED);
-	BUG_ON(!dev->cpumask);
+	if (CPU_MASK_CHECK(dev->cpumask))
+		dev->cpumask = cpumask_of(smp_processor_id());
 
 	raw_spin_lock_irqsave(&clockevents_lock, flags);
 
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help