detect zero event-device multiplicators - they then cause
division-by-zero crashes if a clockevent has been initialized
incorrectly.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
 {
        u64 clc = ((u64) latch << evt->shift);
 
+       if (unlikely(!evt->mult)) {
+               evt->mult = 1;
+               WARN_ON(1);
+       }
+
        do_div(clc, evt->mult);
        if (clc < 1000)
                clc = 1000;
 void clockevents_register_device(struct clock_event_device *dev)
 {
        BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED);
+       /*
+        * 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);