>>> On 18.10.17 at 10:27, <sergey.dya...@citrix.com> wrote: > +static void __init calculate_hvm_max_vmx_policy(struct msr_domain_policy *dp) > +{ > + if ( !cpu_has_vmx ) > + return; > + > + dp->vmx.basic.raw = host_msr_domain_policy.vmx.basic.raw; > + > + dp->vmx.pinbased_ctls.raw = ((uint64_t) VMX_PINBASED_CTLS_DEFAULT1 << > 32) |
Stray blank after cast. > + VMX_PINBASED_CTLS_DEFAULT1; > + vmx_host_allowed_cpyb(dp, vmx, pinbased_ctls, ext_intr_exiting); > + vmx_host_allowed_cpyb(dp, vmx, pinbased_ctls, nmi_exiting); > + vmx_host_allowed_cpyb(dp, vmx, pinbased_ctls, preempt_timer); > + > + dp->vmx.procbased_ctls.raw = > + ((uint64_t) VMX_PROCBASED_CTLS_DEFAULT1 << 32) | Again. > + VMX_PROCBASED_CTLS_DEFAULT1; > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, virtual_intr_pending); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, use_tsc_offseting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, hlt_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, invlpg_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, mwait_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, rdpmc_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, rdtsc_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, cr8_load_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, cr8_store_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, tpr_shadow); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, virtual_nmi_pending); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, mov_dr_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, uncond_io_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, activate_io_bitmap); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, monitor_trap_flag); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, activate_msr_bitmap); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, monitor_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, pause_exiting); > + vmx_host_allowed_cpyb(dp, vmx, procbased_ctls, > activate_secondary_controls); This looks pretty ugly and hard to maintain to me. Wouldn't it be possible to have static const instances of the structures describing which fields should come from where, allowing simple & and | to be done on the raw fields instead. I understand we won't get away without listing the individual bits, but the overhead here is far higher than if there was a simple initializer line for each field. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel