38static DEFINE_PER_CPU(int, resched_irq);
39static DEFINE_PER_CPU(int, callfunc_irq);
40static DEFINE_PER_CPU(int, callfuncsingle_irq);
41static DEFINE_PER_CPU(int, debug_irq) = -1;
42
43static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id);
44static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
45
46
47
48
49
50
51static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
52{
53#ifdef CONFIG_X86_32
54 __get_cpu_var(irq_stat).irq_resched_count++;
55#else
56 add_pda(irq_resched_count, 1);
57#endif
58
59 return IRQ_HANDLED;
60}
61
62static __cpuinit void cpu_bringup(void)
63{
64 int cpu = smp_processor_id();
65
66 cpu_init();
67 touch_softlockup_watchdog();
68 preempt_disable();
69
70 xen_enable_sysenter();
71 xen_enable_syscall();
72
73 cpu = smp_processor_id();
74 smp_store_cpu_info(cpu);
75 cpu_data(cpu).x86_max_cores = 1;
76 set_cpu_sibling_map(cpu);
77
78 xen_setup_cpu_clockevents();