From: Kaitao Cheng sparse_init() is called only once during boot, and the vmemmap alignment check is outside any loop, so VM_WARN_ON_ONCE() provides no benefit over VM_WARN_ON() here. Use VM_WARN_ON() and fold compound_info_has_mask() into its condition, preserving short-circuit evaluation. Signed-off-by: Kaitao Cheng --- mm/sparse.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/sparse.c b/mm/sparse.c index 6acb628c8a73..759b85172adb 100644 --- a/mm/sparse.c +++ b/mm/sparse.c @@ -277,10 +277,8 @@ static void __init sparse_metadata_init(void) */ void __init sparse_init(void) { - if (compound_info_has_mask()) { - VM_WARN_ON_ONCE(!IS_ALIGNED((unsigned long) pfn_to_page(0), - MAX_FOLIO_VMEMMAP_ALIGN)); - } + VM_WARN_ON(compound_info_has_mask() && + !IS_ALIGNED((unsigned long)pfn_to_page(0), MAX_FOLIO_VMEMMAP_ALIGN)); sparse_metadata_init(); sparse_init_subsection_map(); -- 2.53.0