[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 4/4] SVM: clean up svm_vmcb_isvalid()
> > -bool_t > -svm_vmcb_isvalid(const char *from, struct vmcb_struct *vmcb, > - bool_t verbose) > +bool svm_vmcb_isvalid(const char *from, const struct vmcb_struct *vmcb, > + const struct vcpu *v, bool verbose) > { > - bool_t ret = 0; /* ok */ > + bool ret = false; /* ok */ I think stashing control register and EFER (and maybe more) into local variables will make code much more readable. > + if ( (vmcb_get_cr0(vmcb) & X86_CR0_PG) && > + ((vmcb_get_cr3(vmcb) & 0x7) || > + ((!(vmcb_get_cr4(vmcb) & X86_CR4_PAE) || > + (vmcb_get_efer(vmcb) & EFER_LMA)) && > + (vmcb_get_cr3(vmcb) & 0xfe0)) || > + ((vmcb_get_efer(vmcb) & EFER_LMA) && > + (vmcb_get_cr3(vmcb) >> v->domain->arch.cpuid->extd.maxphysaddr))) > ) > + PRINTF("CR3: MBZ bits are set (%#"PRIx64")\n", vmcb_get_cr3(vmcb)); For example, this fragment took me a while to mentally unwrap. Shorter names should allow you to group them better per line. (also might generate less code, depending on compiler) -boris _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |