Hi Julien, > On 16 May 2022, at 18:02, Julien Grall <jul...@xen.org> wrote: > > From: Julien Grall <jgr...@amazon.com> > > Commit 88a037e2cfe1 "page_alloc: assert IRQs are enabled in heap > alloc/free" extended the checks in the buddy allocator to catch any > use of the helpers from context with interrupts disabled. > > Unfortunately, the rule is not followed in the LPI code when allocating > the pending table: > > (XEN) Xen call trace: > (XEN) [<000000000022a678>] alloc_xenheap_pages+0x178/0x194 (PC) > (XEN) [<000000000022a670>] alloc_xenheap_pages+0x170/0x194 (LR) > (XEN) [<0000000000237770>] _xmalloc+0x144/0x294 > (XEN) [<00000000002378d4>] _xzalloc+0x14/0x30 > (XEN) [<000000000027b4e4>] gicv3_lpi_init_rdist+0x54/0x324 > (XEN) [<0000000000279898>] arch/arm/gic-v3.c#gicv3_cpu_init+0x128/0x46 > (XEN) [<0000000000279bfc>] > arch/arm/gic-v3.c#gicv3_secondary_cpu_init+0x20/0x50 > (XEN) [<0000000000277054>] gic_init_secondary_cpu+0x18/0x30 > (XEN) [<0000000000284518>] start_secondary+0x1a8/0x234 > (XEN) [<0000010722aa4200>] 0000010722aa4200 > (XEN) > (XEN) > (XEN) **************************************** > (XEN) Panic on CPU 2: > (XEN) Assertion '!in_irq() && (local_irq_is_enabled() || num_online_cpus() <= > 1)' failed at common/page_alloc.c:2212 > (XEN) **************************************** > > For now the patch extending the checks has been reverted, but it would > be good to re-introduce it (allocation with interrupt is not desirable). > > The logic is reworked to allocate the pending table when preparing the > CPU. > > Signed-off-by: Julien Grall <jgr...@amazon.com>
With the print fixed as pointed by Michal you can add my: Reviewed-by: Bertrand Marquis <bertrand.marq...@arm.com> (Fix could be done on commit but that is up to you). Cheers Bertrand