Fix the following build warning:
mm/sparse.c: In function ‘sparse_buffer_init’:
mm/sparse.c:438:69: warning: format ‘%lx’ expects argument of type ‘long
unsigned int’, but argument 6 has type ‘phys_addr_t’ {aka ‘long long
unsigned int’} [-Wformat=]
panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%lx\n",
~~^
Rework to use '%pa' and not '%lx'. Use a local variable of phys_addr_t
to print the reference with '%pa'.
Fixes: 1c3c9328cde0 ("treewide: add checks for the return value of memblock_alloc*()")
Signed-off-by: Anders Roxell <[email protected]>
---
mm/sparse.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/mm/sparse.c b/mm/sparse.c
index 1471f06c6468..6a2b0a9359d7 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -409,16 +409,17 @@ struct page __init *sparse_mem_map_populate(unsigned long pnum, int nid,
{
unsigned long size = section_map_size();
struct page *map = sparse_buffer_alloc(size);
+ phys_addr_t addr = __pa(MAX_DMA_ADDRESS);
if (map)
return map;
map = memblock_alloc_try_nid(size,
- PAGE_SIZE, __pa(MAX_DMA_ADDRESS),
+ PAGE_SIZE, addr,
MEMBLOCK_ALLOC_ACCESSIBLE, nid);
if (!map)
- panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%lx\n",
- __func__, size, PAGE_SIZE, nid, __pa(MAX_DMA_ADDRESS));
+ panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%pa\n",
+ __func__, size, PAGE_SIZE, nid, &addr);
return map;
}
@@ -429,14 +430,15 @@ static void *sparsemap_buf_end __meminitdata;
static void __init sparse_buffer_init(unsigned long size, int nid)
{
+ phys_addr_t addr = __pa(MAX_DMA_ADDRESS);
WARN_ON(sparsemap_buf); /* forgot to call sparse_buffer_fini()? */
sparsemap_buf =
memblock_alloc_try_nid_raw(size, PAGE_SIZE,
- __pa(MAX_DMA_ADDRESS),
+ addr,
MEMBLOCK_ALLOC_ACCESSIBLE, nid);
if (!sparsemap_buf)
- panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%lx\n",
- __func__, size, PAGE_SIZE, nid, __pa(MAX_DMA_ADDRESS));
+ panic("%s: Failed to allocate %lu bytes align=0x%lx nid=%d from=%pa\n",
+ __func__, size, PAGE_SIZE, nid, &addr);
sparsemap_buf_end = sparsemap_buf + size;
}
--
2.20.1