[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 17/17] xen: Switch parameter in get_page_from_gfn to use typesafe gfn
On 22.03.2020 17:14, julien@xxxxxxx wrote: > --- a/xen/arch/x86/hvm/domain.c > +++ b/xen/arch/x86/hvm/domain.c > @@ -296,8 +296,10 @@ int arch_set_info_hvm_guest(struct vcpu *v, const > vcpu_hvm_context_t *ctx) > if ( hvm_paging_enabled(v) && !paging_mode_hap(v->domain) ) > { > /* Shadow-mode CR3 change. Check PDBR and update refcounts. */ > - struct page_info *page = get_page_from_gfn(v->domain, > - v->arch.hvm.guest_cr[3] >> PAGE_SHIFT, > + struct page_info *page; > + > + page = get_page_from_gfn(v->domain, > + gaddr_to_gfn(v->arch.hvm.guest_cr[3]), My earlier comment on this remains - I thing this conversion makes the problem this expression has more hidden than with the shift. This would better use a gfn_from_cr3() helper (or whatever it'll be that it gets named). Same elsewhere in this patch then. > @@ -2363,7 +2364,7 @@ int hvm_set_cr3(unsigned long value, bool may_defer) > { > /* Shadow-mode CR3 change. Check PDBR and update refcounts. */ > HVM_DBG_LOG(DBG_LEVEL_VMMU, "CR3 value = %lx", value); > - page = get_page_from_gfn(v->domain, value >> PAGE_SHIFT, > + page = get_page_from_gfn(v->domain, cr3_to_gfn(value), Oh, seeing this I recall Paul did point out the above already. > @@ -508,7 +508,7 @@ int evtchn_fifo_init_control(struct evtchn_init_control > *init_control) > { > struct domain *d = current->domain; > uint32_t vcpu_id; > - uint64_t gfn; > + gfn_t gfn; > uint32_t offset; > struct vcpu *v; > int rc; > @@ -516,7 +516,7 @@ int evtchn_fifo_init_control(struct evtchn_init_control > *init_control) > init_control->link_bits = EVTCHN_FIFO_LINK_BITS; > > vcpu_id = init_control->vcpu; > - gfn = init_control->control_gfn; > + gfn = _gfn(init_control->control_gfn); There's silent truncation here now for Arm32, afaict. Are we really okay with this? Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |