>>> On 02.03.18 at 08:44, <jbeul...@suse.com> wrote: >>>> On 01.03.18 at 19:23, <jgr...@suse.com> wrote: >> --- a/xen/arch/x86/smpboot.c >> +++ b/xen/arch/x86/smpboot.c >> @@ -747,10 +747,9 @@ static int clone_mapping(const void *ptr,root_pgentry_t >> *rpt) >> if ( l1e_get_flags(*pl1e) & _PAGE_PRESENT ) >> { >> ASSERT(l1e_get_pfn(*pl1e) == pfn); >> - ASSERT(l1e_get_flags(*pl1e) == flags); >> + ASSERT((l1e_get_flags(*pl1e) & ~_PAGE_GLOBAL) == flags); >> } >> - else >> - l1e_write(pl1e, l1e_from_pfn(pfn, flags)); >> + l1e_write(pl1e, l1e_from_pfn(pfn, flags)); > > I agree with the change to the ASSERT(), but why the dropping of > the "else"?
Wait, no, I do not agree: If we change this assertion, we merely hide a problem elsewhere. We are supposed to only write cloned page tables here, and all such writes happen with the global bit clear. Hence if we find an entry with a set global bit, we must be attempting to modify a non-cloned PTE. I'll have to look into this more closely. Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel