[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/p2m: fixed p2m_change_type_range() start / end check
On 04/18/2018 10:48 AM, Razvan Cojocaru wrote: > On 04/18/2018 10:38 AM, Jan Beulich wrote: >>>>> On 17.04.18 at 19:16, <rcojocaru@xxxxxxxxxxxxxxx> wrote: >>> --- a/xen/arch/x86/mm/p2m.c >>> +++ b/xen/arch/x86/mm/p2m.c >>> @@ -976,6 +976,13 @@ void p2m_change_type_range(struct domain *d, >>> ASSERT(p2m_is_changeable(ot) && p2m_is_changeable(nt)); >>> >>> p2m_lock(p2m); >>> + >>> + if ( start > p2m->max_mapped_pfn ) >>> + { >>> + p2m_unlock(p2m); >>> + return; >>> + } >> >> I realize this is what George has suggested, but I still wonder if this is >> the >> right thing to do here: Why is this any more important to check than the >> more general start >= end (in which case the assertion in the rangeset >> code would also trigger)? Till now the function assumes "sensible" things >> to be passed in, but specifically also permitting the [start,~0UL] case >> (just in a more generalizer fashion). The problem you're trying to fix here >> is something passing in a nonsense range (starting above the valid range). >> Yet if we want the function to be immune to nonsense being passed in, I >> think start < end is what needs checking for, and that check would then >> perhaps better go after end was already adjusted. >> >> The obvious alternative is for callers to only pass in sane ranges (in which >> case adding ASSERT() here may be considered, instead of triggering the >> one in the rangeset code). >> >> In any event you want to add unlikely(), just like the similar end check has. > > FWIW I'll be happy to change the test to unlikely( start < end ), if > this is OK with George. I'll test the change now. Sorry, unlikely(end <= start), obviously. Thanks, Razvan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |