From: Andrew Cooper Date: Mon, 11 Jan 2021 15:54:38 +0000 (+0000) Subject: x86/smpboot: Re-position the call to tboot_wake_ap() X-Git-Tag: archive/raspbian/4.16.0+51-g0941d6cb-1+rpi1~2^2~42^2~1009 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=dbfee5918cb8357b77dc6758d79cd100e1baeeaa;p=xen.git x86/smpboot: Re-position the call to tboot_wake_ap() So all the moving parts are in one function. No functional change. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 67e727cebd..f5aba3c555 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -425,6 +425,13 @@ static int wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip) unsigned long send_status = 0, accept_status = 0; int maxlvt, timeout, i; + /* + * Some versions of tboot might be able to handle the entire wake sequence + * on our behalf. + */ + if ( tboot_in_measured_env() && !tboot_wake_ap(phys_apicid, start_eip) ) + return 0; + /* * Be paranoid about clearing APIC errors. */ @@ -570,8 +577,7 @@ static int do_boot_cpu(int apicid, int cpu) set_cpu_state(CPU_STATE_INIT); /* Starting actual IPI sequence... */ - if ( !tboot_in_measured_env() || tboot_wake_ap(apicid, start_eip) ) - boot_error = wakeup_secondary_cpu(apicid, start_eip); + boot_error = wakeup_secondary_cpu(apicid, start_eip); if ( !boot_error ) {