[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 8/16]: PVH xen: domain creation code changes
On Wed, 16 Jan 2013 09:57:45 +0000 "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > >>> On 16.01.13 at 01:50, Mukesh Rathor <mukesh.rathor@xxxxxxxxxx> > >>> wrote: > > On Mon, 14 Jan 2013 11:49:42 +0000 "Jan Beulich" > > <JBeulich@xxxxxxxx> wrote: > >> So you add these hooks, call them unconditionally, yet neither VMX No, both are conditional calls: + if ( is_pvh_vcpu(v) ) + { + /* guest is bringing up non-boot SMP vcpu */ + if ( (rc=hvm_pvh_set_vcpu_info(v, c.nat)) != 0 ) + return rc; + } + So, if someone applies partial patches and then tries to boot PVH guest, then it'll hit NULL ptr. > Sure, but the code needs to be correct at patch boundaries. And > a NULL pointer dereference doesn't count as correct to me, the > more that I don't think the patch set deals with SVM, and hence > there the NULL pointer dereference (at the end of your patch > set) likely has paths reaching it that cannot be easily shown to be > dead under SVM. Hmm.. I guess in this particular patch then I could just create null functions and not call vmx/svm ones, and change that later in the patch when I introduce the actual vmx/svm functions. For SVM, they will be stubs since SVM is not implmented for PVH right now. Ok, I'll do that. > >> > #define vcpu_nestedhvm(v) ((v)->arch.hvm_vcpu.nvcpu) > >> > > >> > +/* add any PVH specific fields here */ > >> > +struct pvh_hvm_vcpu_ext > >> > +{ > >> > + /* Guest-specified relocation of vcpu_info. */ > >> > + unsigned long pvh_vcpu_info_mfn; > >> > >> Isn't that a field equivalent to v->arch.pv_vcpu.vcpu_info_mfn? > >> Preferably they would be shared then, or if not, having "pvh" in > >> the containing structure's field name and the field name here is > >> clearly one too much. > > > > No, it's a union, so can't use pv_vcpu.vcpu_info_mfn. I like the > > 3 char prefix to field name so grep/cscope can find it easily. > > Sure, it's a matter of taste to some degree. But I personally > dislike that sort of redundancy (the expressions actually using > this look pretty odd), except when the untagged name is > really very generic (which isn't the case here). Only if the ptr to struct is define in a meaningful way, like struct pvh_hvm_vcpu_ext *pvhp; But I rarely see that. Furthermore, some smart guy will add a field "int size". Good luck greping/cscoping that! So, setting a precedent to prefix pvh would be a good idea IMO. I changed it to vcpu_info_mfn anyways. thanks Mukesh _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |