From: Wei Liu Date: Wed, 5 Feb 2020 18:02:24 +0000 (+0000) Subject: x86/guest/xen: only set HVM parameter on BSP X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~730 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=84cb6fe2e9901c5c8728605efd5601ec0f5daf7a;p=xen.git x86/guest/xen: only set HVM parameter on BSP There is no need for every CPU to set a guest property. Suggested-by: Roger Pau Monné Signed-off-by: Wei Liu Reviewed-by: Jan Beulich Reviewed-by: Roger Pau Monné --- diff --git a/xen/arch/x86/guest/xen/xen.c b/xen/arch/x86/guest/xen/xen.c index 1f868f2f8d..3cf8f667a1 100644 --- a/xen/arch/x86/guest/xen/xen.c +++ b/xen/arch/x86/guest/xen/xen.c @@ -206,11 +206,6 @@ static int init_evtchn(void) { static uint8_t evtchn_upcall_vector; int rc; - struct xen_hvm_param a = { - .domid = DOMID_SELF, - .index = HVM_PARAM_CALLBACK_IRQ, - .value = 1, - }; if ( !evtchn_upcall_vector ) alloc_direct_apic_vector(&evtchn_upcall_vector, xen_evtchn_upcall); @@ -225,10 +220,19 @@ static int init_evtchn(void) return rc; } - /* Trick toolstack to think we are enlightened */ - rc = xen_hypercall_hvm_op(HVMOP_set_param, &a); - if ( rc ) - printk("Unable to set HVM_PARAM_CALLBACK_IRQ\n"); + if ( smp_processor_id() == 0 ) + { + struct xen_hvm_param a = { + .domid = DOMID_SELF, + .index = HVM_PARAM_CALLBACK_IRQ, + .value = 1, + }; + + /* Trick toolstack to think we are enlightened */ + rc = xen_hypercall_hvm_op(HVMOP_set_param, &a); + if ( rc ) + printk("Unable to set HVM_PARAM_CALLBACK_IRQ\n"); + } return rc; }