]> err.no Git - linux-2.6/blobdiff - kernel/time/tick-broadcast.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86
[linux-2.6] / kernel / time / tick-broadcast.c
index fab9dd8bbd6b14a92abe6f0013e5589f45cca818..aa82d7bf478a7adc8eb34700b3a5b540e672b28d 100644 (file)
@@ -222,20 +222,8 @@ static void tick_do_broadcast_on_off(void *why)
        if (!dev || !(dev->features & CLOCK_EVT_FEAT_C3STOP))
                goto out;
 
-       /*
-        * Defect device ?
-        */
-       if (!tick_device_is_functional(dev)) {
-               /*
-                * AMD C1E wreckage fixup:
-                *
-                * Device was registered functional in the first
-                * place. Now the secondary CPU detected the C1E
-                * misfeature and notifies us to fix it up
-                */
-               if (*reason != CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
-                       goto out;
-       }
+       if (!tick_device_is_functional(dev))
+               goto out;
 
        switch (*reason) {
        case CLOCK_EVT_NOTIFY_BROADCAST_ON:
@@ -246,6 +234,8 @@ static void tick_do_broadcast_on_off(void *why)
                                clockevents_set_mode(dev,
                                                     CLOCK_EVT_MODE_SHUTDOWN);
                }
+               if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
+                       dev->features |= CLOCK_EVT_FEAT_DUMMY;
                break;
        case CLOCK_EVT_NOTIFY_BROADCAST_OFF:
                if (cpu_isset(cpu, tick_broadcast_mask)) {
@@ -518,7 +508,7 @@ static void tick_broadcast_clear_oneshot(int cpu)
 }
 
 /**
- * tick_broadcast_setup_highres - setup the broadcast device for highres
+ * tick_broadcast_setup_oneshot - setup the broadcast device
  */
 void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
 {