aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-i386
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-i386')
-rw-r--r--include/asm-i386/paravirt.h9
-rw-r--r--include/asm-i386/smp.h5
2 files changed, 14 insertions, 0 deletions
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h
index 38e5164bd0e7..6ccf36499b2a 100644
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -151,6 +151,8 @@ struct paravirt_ops
151 /* These two are jmp to, not actually called. */ 151 /* These two are jmp to, not actually called. */
152 void (fastcall *irq_enable_sysexit)(void); 152 void (fastcall *irq_enable_sysexit)(void);
153 void (fastcall *iret)(void); 153 void (fastcall *iret)(void);
154
155 void (fastcall *startup_ipi_hook)(int phys_apicid, unsigned long start_eip, unsigned long start_esp);
154}; 156};
155 157
156/* Mark a paravirt probe function. */ 158/* Mark a paravirt probe function. */
@@ -323,6 +325,13 @@ static inline unsigned long apic_read(unsigned long reg)
323} 325}
324#endif 326#endif
325 327
328#ifdef CONFIG_SMP
329static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip,
330 unsigned long start_esp)
331{
332 return paravirt_ops.startup_ipi_hook(phys_apicid, start_eip, start_esp);
333}
334#endif
326 335
327#define __flush_tlb() paravirt_ops.flush_tlb_user() 336#define __flush_tlb() paravirt_ops.flush_tlb_user()
328#define __flush_tlb_global() paravirt_ops.flush_tlb_kernel() 337#define __flush_tlb_global() paravirt_ops.flush_tlb_kernel()
diff --git a/include/asm-i386/smp.h b/include/asm-i386/smp.h
index 64fe624c02ca..6bf0033a301c 100644
--- a/include/asm-i386/smp.h
+++ b/include/asm-i386/smp.h
@@ -52,6 +52,11 @@ extern void cpu_exit_clear(void);
52extern void cpu_uninit(void); 52extern void cpu_uninit(void);
53#endif 53#endif
54 54
55#ifndef CONFIG_PARAVIRT
56#define startup_ipi_hook(phys_apicid, start_eip, start_esp) \
57do { } while (0)
58#endif
59
55/* 60/*
56 * This function is needed by all SMP systems. It must _always_ be valid 61 * This function is needed by all SMP systems. It must _always_ be valid
57 * from the initial startup. We map APIC_BASE very early in page_setup(), 62 * from the initial startup. We map APIC_BASE very early in page_setup(),