x86/paravirt: Remove unused pv_apic_ops structure
authorJuergen Gross <jgross@suse.com>
Tue, 17 Nov 2015 13:44:32 +0000 (14:44 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 19 Nov 2015 10:03:58 +0000 (11:03 +0100)
The only member of that structure is startup_ipi_hook which is always
set to paravirt_nop.

Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: David Vrabel <david.vrabel@citrix.com>
Cc: jeremy@goop.org
Cc: chrisw@sous-sol.org
Cc: akataria@vmware.com
Cc: rusty@rustcorp.com.au
Cc: virtualization@lists.linux-foundation.org
Cc: xen-devel@lists.xen.org
Cc: konrad.wilk@oracle.com
Cc: boris.ostrovsky@oracle.com
Link: http://lkml.kernel.org/r/1447767872-16730-1-git-send-email-jgross@suse.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/include/asm/paravirt.h
arch/x86/include/asm/paravirt_types.h
arch/x86/include/asm/smp.h
arch/x86/kernel/paravirt.c
arch/x86/kernel/smpboot.c
arch/x86/xen/enlighten.c

index 10d0596433f89b849f91c164d7252a29bcac921b..4d7f080e470628bf5723bfcee17ee8c2ea0b6700 100644 (file)
@@ -285,15 +285,6 @@ static inline void slow_down_io(void)
 #endif
 }
 
-#ifdef CONFIG_SMP
-static inline void startup_ipi_hook(int phys_apicid, unsigned long start_eip,
-                                   unsigned long start_esp)
-{
-       PVOP_VCALL3(pv_apic_ops.startup_ipi_hook,
-                   phys_apicid, start_eip, start_esp);
-}
-#endif
-
 static inline void paravirt_activate_mm(struct mm_struct *prev,
                                        struct mm_struct *next)
 {
index e1f31dfc3b31c016bf962613be3b151033c7d1d6..7afeafb8a4ee5a8e85c875c94a93b9c444b4394d 100644 (file)
@@ -215,14 +215,6 @@ struct pv_irq_ops {
 #endif
 };
 
-struct pv_apic_ops {
-#ifdef CONFIG_X86_LOCAL_APIC
-       void (*startup_ipi_hook)(int phys_apicid,
-                                unsigned long start_eip,
-                                unsigned long start_esp);
-#endif
-};
-
 struct pv_mmu_ops {
        unsigned long (*read_cr2)(void);
        void (*write_cr2)(unsigned long);
@@ -354,7 +346,6 @@ struct paravirt_patch_template {
        struct pv_time_ops pv_time_ops;
        struct pv_cpu_ops pv_cpu_ops;
        struct pv_irq_ops pv_irq_ops;
-       struct pv_apic_ops pv_apic_ops;
        struct pv_mmu_ops pv_mmu_ops;
        struct pv_lock_ops pv_lock_ops;
 };
@@ -364,7 +355,6 @@ extern struct pv_init_ops pv_init_ops;
 extern struct pv_time_ops pv_time_ops;
 extern struct pv_cpu_ops pv_cpu_ops;
 extern struct pv_irq_ops pv_irq_ops;
-extern struct pv_apic_ops pv_apic_ops;
 extern struct pv_mmu_ops pv_mmu_ops;
 extern struct pv_lock_ops pv_lock_ops;
 
index a438c5598a9053f81e4f22838833b2065209680b..dfcf0727623b3f89d53374ea504f243e802be149 100644 (file)
@@ -65,9 +65,6 @@ struct smp_ops {
 extern void set_cpu_sibling_map(int cpu);
 
 #ifdef CONFIG_SMP
-#ifndef CONFIG_PARAVIRT
-#define startup_ipi_hook(phys_apicid, start_eip, start_esp) do { } while (0)
-#endif
 extern struct smp_ops smp_ops;
 
 static inline void smp_send_stop(void)
index 4f32a10979dbb503dcb6145d215529232013b5f0..f27962cca0c74e3ef76a16bf4d0da34050e8f369 100644 (file)
@@ -123,7 +123,6 @@ static void *get_call_destination(u8 type)
                .pv_time_ops = pv_time_ops,
                .pv_cpu_ops = pv_cpu_ops,
                .pv_irq_ops = pv_irq_ops,
-               .pv_apic_ops = pv_apic_ops,
                .pv_mmu_ops = pv_mmu_ops,
 #ifdef CONFIG_PARAVIRT_SPINLOCKS
                .pv_lock_ops = pv_lock_ops,
@@ -392,12 +391,6 @@ NOKPROBE_SYMBOL(native_get_debugreg);
 NOKPROBE_SYMBOL(native_set_debugreg);
 NOKPROBE_SYMBOL(native_load_idt);
 
-struct pv_apic_ops pv_apic_ops = {
-#ifdef CONFIG_X86_LOCAL_APIC
-       .startup_ipi_hook = paravirt_nop,
-#endif
-};
-
 #if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
 /* 32-bit pagetable entries */
 #define PTE_IDENT      __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
@@ -481,6 +474,5 @@ struct pv_mmu_ops pv_mmu_ops = {
 EXPORT_SYMBOL_GPL(pv_time_ops);
 EXPORT_SYMBOL    (pv_cpu_ops);
 EXPORT_SYMBOL    (pv_mmu_ops);
-EXPORT_SYMBOL_GPL(pv_apic_ops);
 EXPORT_SYMBOL_GPL(pv_info);
 EXPORT_SYMBOL    (pv_irq_ops);
index 892ee2e5ecbce417df506715f7b28d28c403ef91..4df777710ab73772697dd98c078cbbffca9ddc69 100644 (file)
@@ -628,13 +628,6 @@ wakeup_secondary_cpu_via_init(int phys_apicid, unsigned long start_eip)
        else
                num_starts = 0;
 
-       /*
-        * Paravirt / VMI wants a startup IPI hook here to set up the
-        * target processor state.
-        */
-       startup_ipi_hook(phys_apicid, (unsigned long) start_secondary,
-                        stack_start);
-
        /*
         * Run STARTUP IPI loop.
         */
index 993b7a71386d53f79befa7a302ede2fdcbed6bd4..2745e8ae93f3138ad440936a268b6036dd35f8fa 100644 (file)
@@ -1264,12 +1264,6 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = {
        .end_context_switch = xen_end_context_switch,
 };
 
-static const struct pv_apic_ops xen_apic_ops __initconst = {
-#ifdef CONFIG_X86_LOCAL_APIC
-       .startup_ipi_hook = paravirt_nop,
-#endif
-};
-
 static void xen_reboot(int reason)
 {
        struct sched_shutdown r = { .reason = reason };
@@ -1535,7 +1529,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
        /* Install Xen paravirt ops */
        pv_info = xen_info;
        pv_init_ops = xen_init_ops;
-       pv_apic_ops = xen_apic_ops;
        if (!xen_pvh_domain()) {
                pv_cpu_ops = xen_cpu_ops;