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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 9 Dec 2011 17:21:51 +0000 (09:21 -0800)
commit c1be84309c58b1e7c6d626e28fba41a22b364c3d upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/time/tick-broadcast.c

index 8917fd3b0ed5447f54c90fc1390aa56bafd1d2e2..57b953f1d42c2b7e00a6d94c8fd86a62333894bc 100644 (file)
@@ -72,7 +72,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);