On 26.04.2022 22:06, Julien Grall 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 alternative code and > this will result to crash at boot with debug enabled: > > (XEN) Xen call trace: > (XEN) [<0022a510>] alloc_xenheap_pages+0x120/0x150 (PC) > (XEN) [<00000000>] 00000000 (LR) > (XEN) [<002736ac>] arch/arm/mm.c#xen_pt_update+0x144/0x6e4 > (XEN) [<002740d4>] map_pages_to_xen+0x10/0x20 > (XEN) [<00236864>] __vmap+0x400/0x4a4 > (XEN) [<0026aee8>] > arch/arm/alternative.c#__apply_alternatives_multi_stop+0x144/0x1ec > (XEN) [<0022fe40>] stop_machine_run+0x23c/0x300 > (XEN) [<002c40c4>] apply_alternatives_all+0x34/0x5c > (XEN) [<002ce3e8>] start_xen+0xcb8/0x1024 > (XEN) [<00200068>] arch/arm/arm32/head.o#primary_switched+0xc/0x1c > > The interrupts will be disabled by the state machine in stop_machine_run(), > hence why the ASSERT is hit. > > For now the patch extending the checks has been reverted, but it would > be good to re-introduce it (allocation with interrupts disabled is not > desirable).
We definitely should re-apply that patch once the one here went in. Jan