tick-broadcast: Stop active broadcast device when replacing it
authorThomas Gleixner <tglx@linutronix.de>
Fri, 2 Dec 2011 11:34:16 +0000 (12:34 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 2 Dec 2011 15:06:54 +0000 (16:06 +0100)
When a better rated broadcast device is installed, then the current
active device is not disabled, which results in two running broadcast
devices.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: stable@vger.kernel.org
kernel/time/tick-broadcast.c

index f954282d9a82758acf951960392e37b5b07c6014..fd4a7b1625a20b35fad917817e136fdbd2d48e62 100644 (file)
@@ -71,7 +71,7 @@ int tick_check_broadcast_device(struct clock_event_device *dev)
             (dev->features & CLOCK_EVT_FEAT_C3STOP))
                return 0;
 
-       clockevents_exchange_device(NULL, dev);
+       clockevents_exchange_device(tick_broadcast_device.evtdev, dev);
        tick_broadcast_device.evtdev = dev;
        if (!cpumask_empty(tick_get_broadcast_mask()))
                tick_broadcast_start_periodic(dev);