275 printk(KERN_INFO "System has AMD C1E enabled\n");
276 set_cpu_cap(&boot_cpu_data, X86_FEATURE_AMDC1E);
277 }
278 }
279
280 if (c1e_detected) {
281 int cpu = smp_processor_id();
282
283 if (!cpu_isset(cpu, c1e_mask)) {
284 cpu_set(cpu, c1e_mask);
285
286
287
288
289
290 local_irq_enable();
291 clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_FORCE,
292 &cpu);
293 printk(KERN_INFO "Switch to broadcast mode on CPU%d\n",
294 cpu);
295 local_irq_disable();
296 }
297 clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
298
299 default_idle();
300
301
302
303
304
305 local_irq_disable();
306 clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
307 local_irq_enable();
308 } else
309 default_idle();
310}
311
312void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
313{
314#ifdef CONFIG_X86_SMP
315 if (pm_idle == poll_idle && smp_num_siblings > 1) {