summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHou Wenlong <houwenlong.hwl@antgroup.com>2026-01-12 15:24:29 +0300
committerAndrew Morton <akpm@linux-foundation.org>2026-01-27 07:02:26 +0300
commit5fd8391cb71982152785edc1e6f48a5c7dcadabc (patch)
treeb13512978cece90b9930ae65a68a9693f6b339b1
parent0cc3197bdb7ff590dd7cc1622a7fac66c240bc75 (diff)
downloadlinux-5fd8391cb71982152785edc1e6f48a5c7dcadabc.tar.xz
mm/early_ioremap: clean up the use of WARN() for debugging
Using WARN() for debugging is strange when nothing is wrong, so replace WARN(early_ioremap_debug) with pr_warn() + dump_stack(). Link: https://lkml.kernel.org/r/d4470531ce0c03fd80f9a1be7e8d8ae1bc60fcd1.1768220636.git.houwenlong.hwl@antgroup.com Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com> Suggested-by: Mike Rapoport <rppt@kernel.org> Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Cc: David Hildenbrand <david@kernel.org> Cc: Hou Wenlong <houwenlong.hwl@antgroup.com> Cc: Liam Howlett <liam.howlett@oracle.com> Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--mm/early_ioremap.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/mm/early_ioremap.c b/mm/early_ioremap.c
index 3fdde074c9da..96c29b9dc85d 100644
--- a/mm/early_ioremap.c
+++ b/mm/early_ioremap.c
@@ -30,6 +30,14 @@ static int __init early_ioremap_debug_setup(char *str)
}
early_param("early_ioremap_debug", early_ioremap_debug_setup);
+#define early_ioremap_dbg(fmt, args...) \
+ do { \
+ if (unlikely(early_ioremap_debug)) { \
+ pr_warn(fmt, ##args); \
+ dump_stack(); \
+ } \
+ } while (0)
+
static int after_paging_init __initdata;
pgprot_t __init __weak early_memremap_pgprot_adjust(resource_size_t phys_addr,
@@ -139,8 +147,8 @@ __early_ioremap(resource_size_t phys_addr, unsigned long size, pgprot_t prot)
if (WARN_ON(nrpages > NR_FIX_BTMAPS))
return NULL;
- WARN(early_ioremap_debug, "%s(%pa, %08lx) [%d] => %08lx + %08lx\n",
- __func__, &phys_addr, size, slot, slot_virt[slot], offset);
+ early_ioremap_dbg("%s(%pa, %08lx) [%d] => %08lx + %08lx\n",
+ __func__, &phys_addr, size, slot, slot_virt[slot], offset);
/*
* Ok, go for it..
@@ -185,8 +193,7 @@ void __init early_iounmap(void __iomem *addr, unsigned long size)
__func__, addr, size, slot, prev_size[slot]))
return;
- WARN(early_ioremap_debug, "%s(%p, %08lx) [%d]\n",
- __func__, addr, size, slot);
+ early_ioremap_dbg("%s(%p, %08lx) [%d]\n", __func__, addr, size, slot);
virt_addr = (unsigned long)addr;
if (WARN_ON(virt_addr < fix_to_virt(FIX_BTMAP_BEGIN)))