]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/time/clockevents.c
Merge branch 'linus' into core/softlockup
[linux-2.6-omap-h63xx.git] / kernel / time / clockevents.c
index ea2f48af83cff4dde64764da811744f74cddb745..d13be216a7905d1a538286322c242726a1af3aba 100644 (file)
@@ -68,6 +68,17 @@ void clockevents_set_mode(struct clock_event_device *dev,
        if (dev->mode != mode) {
                dev->set_mode(mode, dev);
                dev->mode = mode;
+
+               /*
+                * A nsec2cyc multiplicator of 0 is invalid and we'd crash
+                * on it, so fix it up and emit a warning:
+                */
+               if (mode == CLOCK_EVT_MODE_ONESHOT) {
+                       if (unlikely(!dev->mult)) {
+                               dev->mult = 1;
+                               WARN_ON(1);
+                       }
+               }
        }
 }
 
@@ -168,15 +179,6 @@ void clockevents_register_device(struct clock_event_device *dev)
        BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED);
        BUG_ON(!dev->cpumask);
 
-       /*
-        * A nsec2cyc multiplicator of 0 is invalid and we'd crash
-        * on it, so fix it up and emit a warning:
-        */
-       if (unlikely(!dev->mult)) {
-               dev->mult = 1;
-               WARN_ON(1);
-       }
-
        spin_lock(&clockevents_lock);
 
        list_add(&dev->list, &clockevent_devices);