[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH for-4.19? v4 4/6] x86: Make the maximum number of altp2m views configurable
On 18.05.2024 13:02, Petr Beneš wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -685,6 +685,18 @@ int arch_sanitise_domain_config(struct > xen_domctl_createdomain *config) > return -EINVAL; > } > > + if ( config->nr_altp2m && !hvm_altp2m_supported() ) > + { > + dprintk(XENLOG_INFO, "altp2m requested but not available\n"); > + return -EINVAL; > + } > + > + if ( config->nr_altp2m > MAX_EPTP ) The compared entities don't really fit together. I think we want a new MAX_NR_ALTP2M, which - for the time being - could simply be #define MAX_NR_ALTP2M MAX_EPTP in the header. That would then be a suitable replacement for the min(ARRAY_SIZE(d->arch.altp2m_p2m), MAX_EPTP) that you're adjusting elsewhere. Which however raises the question whether in EPT-specific code the min() wouldn't better survive, as min(d->nr_altp2m, MAX_EPTP). > @@ -5228,7 +5234,7 @@ void hvm_fast_singlestep(struct vcpu *v, uint16_t > p2midx) > if ( !hvm_is_singlestep_supported() ) > return; > > - if ( p2midx >= MAX_ALTP2M ) > + if ( p2midx >= v->domain->nr_altp2m ) > return; You don't introduce a new local variable here. I'd like to ask that you also don't ... > @@ -403,12 +403,12 @@ long p2m_set_mem_access_multi(struct domain *d, > /* altp2m view 0 is treated as the hostp2m */ > if ( altp2m_idx ) > { > - if ( altp2m_idx >= min(ARRAY_SIZE(d->arch.altp2m_p2m), MAX_EPTP) || > - d->arch.altp2m_eptp[array_index_nospec(altp2m_idx, MAX_EPTP)] == > - mfn_x(INVALID_MFN) ) > + if ( altp2m_idx >= d->nr_altp2m || > + d->arch.altp2m_eptp[array_index_nospec(altp2m_idx, > d->nr_altp2m)] > + == mfn_x(INVALID_MFN) ) Please don't break previously correct style: Binary operators (here: == ) belong onto the end of the earlier line. That'll render the line too long again, but you want to deal with that e.g. thus: d->arch.altp2m_eptp[array_index_nospec(altp2m_idx, d->nr_altp2m)] == mfn_x(INVALID_MFN) ) Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |