Push hypervisor_ap_setup down to smp_callin.
Take the chance to replace xen_guest with cpu_has_hypervisor.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
goto halt;
}
+ if ( cpu_has_hypervisor && (rc = hypervisor_ap_setup()) != 0 )
+ {
+ printk("CPU%d: Failed to initialise hypervisor functions. Not coming online.\n", cpu);
+ cpu_error = rc;
+ goto halt;
+ }
+
if ( (rc = hvm_cpu_up()) != 0 )
{
printk("CPU%d: Failed to initialise HVM. Not coming online.\n", cpu);
tsx_init(); /* Needs microcode. May change HLE/RTM feature bits. */
- if ( xen_guest )
- hypervisor_ap_setup();
-
smp_callin();
set_cpu_sibling_map(cpu);
static inline const char *hypervisor_probe(void) { return NULL; }
static inline void hypervisor_setup(void) { ASSERT_UNREACHABLE(); }
-static inline int hypervisor_ap_setup(void) { ASSERT_UNREACHABLE(); return 0; }
+static inline int hypervisor_ap_setup(void) { return 0; }
static inline void hypervisor_resume(void) { ASSERT_UNREACHABLE(); }
#endif /* CONFIG_GUEST */