[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] page_alloc: clear nr_bootmem_regions in end_boot_allocator()
>>> On 07.02.17 at 12:38, <andrew.cooper3@xxxxxxxxxx> wrote: > On 02/02/17 16:20, Jan Beulich wrote: >>>>> On 02.02.17 at 16:41, <andrew.cooper3@xxxxxxxxxx> wrote: >>> On 02/02/17 15:25, Jan Beulich wrote: >>>> --- a/xen/common/page_alloc.c >>>> +++ b/xen/common/page_alloc.c >>>> @@ -329,13 +329,16 @@ unsigned long __init alloc_boot_pages( >>>> unsigned long nr_pfns, unsigned long pfn_align) >>>> { >>>> unsigned long pg, _e; >>>> - int i; >>>> + unsigned int i = nr_bootmem_regions; >>>> >>>> - for ( i = nr_bootmem_regions - 1; i >= 0; i-- ) >>>> + BOOT_BUG_ON(!nr_bootmem_regions); >>> Can this just be a plain BUG_ON() to avoid adding further work which >>> needs to undone for livepatching purposes? >> Well, for one I don't like adding inconsistency here. And then I'm >> not convinced switching over to BUG_ON() is a good idea, so I'd >> rather leave that discussion for when someone indeed wants to >> make that change. In particular I'm not convinced that during >> very early boot all the register and stack dumping functions >> reliably, in which case a simple panic() is more likely to produce >> at least no confusing output. > > Well - the change is definitely needed. BOOT_BUG_ON() has an embedded > __LINE__ which causes problems making livepatches. There are ways other than converting to BUG_ON() to deal with that, e.g. allowing a non-ambiguous string to be handed (e.g. ASSERT()-like) and included in the panic() output. > The early register/stack functions should work correctly. I did test > that when rearranging the x86 IDT handling several releases ago. What about page walks? And ARM? > As to consistency, I would prefer if the situation wasn't made worse, > but if you really insist, then my R-by stands. Thanks. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |