[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 10/17] x86/VPMU: Initialize PMU for PV guests
>>> On 21.01.14 at 20:08, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> wrote: > +static int pvpmu_init(struct domain *d, xen_pmu_params_t *params) > +{ > + struct vcpu *v; > + struct page_info *page; > + uint64_t gmfn = params->d.val; > + > + if ( params->vcpu < 0 || params->vcpu >= d->max_vcpus ) > + return -EINVAL; > + > + page = get_page_from_gfn(d, gmfn, NULL, P2M_ALLOC); > + if ( !page ) > + return -EINVAL; > + > + v = d->vcpu[params->vcpu]; > + v->arch.vpmu.xenpmu_data = __map_domain_page_global(page); > + if ( !v->arch.vpmu.xenpmu_data ) > + { > + put_page(page); > + return -EINVAL; > + } > + > + vpmu_initialise(v); > + > + return 0; > +} This being for a PV guest, you need to obtain a write type reference to the page, or else you risk the guest re-using the page for something that mustn't be written to in uncontrolled ways (like a page or descriptor table). See e.g. map_vcpu_info(). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |