[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC V2 36/45] x86: make loading of GDT at context switch more modular
>>> On 06.05.19 at 08:56, <jgross@xxxxxxxx> wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -1619,6 +1619,37 @@ static inline bool need_full_gdt(const struct domain > *d) > return is_pv_domain(d) && !is_idle_domain(d); > } > > +static inline void write_full_gdt_ptes(seg_desc_t *gdt, struct vcpu *v) > +{ > + unsigned long mfn = virt_to_mfn(gdt); > + l1_pgentry_t *pl1e = pv_gdt_ptes(v); > + unsigned int i; > + > + for ( i = 0; i < NR_RESERVED_GDT_PAGES; i++ ) > + l1e_write(pl1e + FIRST_RESERVED_GDT_PAGE + i, > + l1e_from_pfn(mfn + i, __PAGE_HYPERVISOR_RW)); > +} > + > +static inline void load_full_gdt(struct vcpu *v, unsigned int cpu) > +{ > + struct desc_ptr gdt_desc; > + > + gdt_desc.limit = LAST_RESERVED_GDT_BYTE; > + gdt_desc.base = GDT_VIRT_START(v); Make this and ... > + lgdt(&gdt_desc); > +} > + > +static inline void load_default_gdt(seg_desc_t *gdt, unsigned int cpu) > +{ > + struct desc_ptr gdt_desc; > + > + gdt_desc.limit = LAST_RESERVED_GDT_BYTE; > + gdt_desc.base = (unsigned long)(gdt - FIRST_RESERVED_GDT_ENTRY); ... the variables' initializers? With this and with const suitably applied to all function parameters where this is possible Acked-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |