[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Crash with your meltdown patches
>>> On 02.03.18 at 08:44, <JBeulich@xxxxxxxx> wrote: >>>> On 01.03.18 at 19:23, <jgross@xxxxxxxx> 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@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |