Skip to content

Commit 26fb3da

Browse files
rppttorvalds
authored andcommitted
memblock: drop memblock_alloc_*_nopanic() variants
As all the memblock allocation functions return NULL in case of error rather than panic(), the duplicates with _nopanic suffix can be removed. Link: http://lkml.kernel.org/r/1548057848-15136-22-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Petr Mladek <pmladek@suse.com> [printk] Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Christophe Leroy <christophe.leroy@c-s.fr> Cc: Christoph Hellwig <hch@lst.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: Dennis Zhou <dennis@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Greentime Hu <green.hu@gmail.com> Cc: Guan Xuetao <gxt@pku.edu.cn> Cc: Guo Ren <guoren@kernel.org> Cc: Guo Ren <ren_guo@c-sky.com> [c-sky] Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Juergen Gross <jgross@suse.com> [Xen] Cc: Mark Salter <msalter@redhat.com> Cc: Matt Turner <mattst88@gmail.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Michal Simek <monstr@monstr.eu> Cc: Paul Burton <paul.burton@mips.com> Cc: Richard Weinberger <richard@nod.at> Cc: Rich Felker <dalias@libc.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Russell King <linux@armlinux.org.uk> Cc: Stafford Horne <shorne@gmail.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent c0dbe82 commit 26fb3da

File tree

14 files changed

+31
-112
lines changed

14 files changed

+31
-112
lines changed

arch/arc/kernel/unwind.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,7 @@ static void init_unwind_hdr(struct unwind_table *table,
181181
*/
182182
static void *__init unw_hdr_alloc_early(unsigned long sz)
183183
{
184-
return memblock_alloc_from_nopanic(sz, sizeof(unsigned int),
185-
MAX_DMA_ADDRESS);
184+
return memblock_alloc_from(sz, sizeof(unsigned int), MAX_DMA_ADDRESS);
186185
}
187186

188187
static void *unw_hdr_alloc(unsigned long sz)

arch/sh/mm/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ void __init allocate_pgdat(unsigned int nid)
202202
get_pfn_range_for_nid(nid, &start_pfn, &end_pfn);
203203

204204
#ifdef CONFIG_NEED_MULTIPLE_NODES
205-
NODE_DATA(nid) = memblock_alloc_try_nid_nopanic(
205+
NODE_DATA(nid) = memblock_alloc_try_nid(
206206
sizeof(struct pglist_data),
207207
SMP_CACHE_BYTES, MEMBLOCK_LOW_LIMIT,
208208
MEMBLOCK_ALLOC_ACCESSIBLE, nid);

arch/x86/kernel/setup_percpu.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,22 +106,22 @@ static void * __init pcpu_alloc_bootmem(unsigned int cpu, unsigned long size,
106106
void *ptr;
107107

108108
if (!node_online(node) || !NODE_DATA(node)) {
109-
ptr = memblock_alloc_from_nopanic(size, align, goal);
109+
ptr = memblock_alloc_from(size, align, goal);
110110
pr_info("cpu %d has no node %d or node-local memory\n",
111111
cpu, node);
112112
pr_debug("per cpu data for cpu%d %lu bytes at %016lx\n",
113113
cpu, size, __pa(ptr));
114114
} else {
115-
ptr = memblock_alloc_try_nid_nopanic(size, align, goal,
116-
MEMBLOCK_ALLOC_ACCESSIBLE,
117-
node);
115+
ptr = memblock_alloc_try_nid(size, align, goal,
116+
MEMBLOCK_ALLOC_ACCESSIBLE,
117+
node);
118118

119119
pr_debug("per cpu data for cpu%d %lu bytes on node%d at %016lx\n",
120120
cpu, size, node, __pa(ptr));
121121
}
122122
return ptr;
123123
#else
124-
return memblock_alloc_from_nopanic(size, align, goal);
124+
return memblock_alloc_from(size, align, goal);
125125
#endif
126126
}
127127

arch/x86/mm/kasan_init_64.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,16 @@ extern struct range pfn_mapped[E820_MAX_ENTRIES];
2424

2525
static p4d_t tmp_p4d_table[MAX_PTRS_PER_P4D] __initdata __aligned(PAGE_SIZE);
2626

27-
static __init void *early_alloc(size_t size, int nid, bool panic)
27+
static __init void *early_alloc(size_t size, int nid, bool should_panic)
2828
{
29-
if (panic)
30-
return memblock_alloc_try_nid(size, size,
31-
__pa(MAX_DMA_ADDRESS), MEMBLOCK_ALLOC_ACCESSIBLE, nid);
32-
else
33-
return memblock_alloc_try_nid_nopanic(size, size,
29+
void *ptr = memblock_alloc_try_nid(size, size,
3430
__pa(MAX_DMA_ADDRESS), MEMBLOCK_ALLOC_ACCESSIBLE, nid);
31+
32+
if (!ptr && should_panic)
33+
panic("%pS: Failed to allocate page, nid=%d from=%lx\n",
34+
(void *)_RET_IP_, nid, __pa(MAX_DMA_ADDRESS));
35+
36+
return ptr;
3537
}
3638

3739
static void __init kasan_populate_pmd(pmd_t *pmd, unsigned long addr,

drivers/firmware/memmap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ int __init firmware_map_add_early(u64 start, u64 end, const char *type)
333333
{
334334
struct firmware_map_entry *entry;
335335

336-
entry = memblock_alloc_nopanic(sizeof(struct firmware_map_entry),
336+
entry = memblock_alloc(sizeof(struct firmware_map_entry),
337337
SMP_CACHE_BYTES);
338338
if (WARN_ON(!entry))
339339
return -ENOMEM;

drivers/usb/early/xhci-dbc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ static void * __init xdbc_get_page(dma_addr_t *dma_addr)
9494
{
9595
void *virt;
9696

97-
virt = memblock_alloc_nopanic(PAGE_SIZE, PAGE_SIZE);
97+
virt = memblock_alloc(PAGE_SIZE, PAGE_SIZE);
9898
if (!virt)
9999
return NULL;
100100

include/linux/memblock.h

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,6 @@ static inline phys_addr_t memblock_phys_alloc(phys_addr_t size,
335335
void *memblock_alloc_try_nid_raw(phys_addr_t size, phys_addr_t align,
336336
phys_addr_t min_addr, phys_addr_t max_addr,
337337
int nid);
338-
void *memblock_alloc_try_nid_nopanic(phys_addr_t size, phys_addr_t align,
339-
phys_addr_t min_addr, phys_addr_t max_addr,
340-
int nid);
341338
void *memblock_alloc_try_nid(phys_addr_t size, phys_addr_t align,
342339
phys_addr_t min_addr, phys_addr_t max_addr,
343340
int nid);
@@ -364,36 +361,12 @@ static inline void * __init memblock_alloc_from(phys_addr_t size,
364361
MEMBLOCK_ALLOC_ACCESSIBLE, NUMA_NO_NODE);
365362
}
366363

367-
static inline void * __init memblock_alloc_nopanic(phys_addr_t size,
368-
phys_addr_t align)
369-
{
370-
return memblock_alloc_try_nid_nopanic(size, align, MEMBLOCK_LOW_LIMIT,
371-
MEMBLOCK_ALLOC_ACCESSIBLE,
372-
NUMA_NO_NODE);
373-
}
374-
375364
static inline void * __init memblock_alloc_low(phys_addr_t size,
376365
phys_addr_t align)
377366
{
378367
return memblock_alloc_try_nid(size, align, MEMBLOCK_LOW_LIMIT,
379368
ARCH_LOW_ADDRESS_LIMIT, NUMA_NO_NODE);
380369
}
381-
static inline void * __init memblock_alloc_low_nopanic(phys_addr_t size,
382-
phys_addr_t align)
383-
{
384-
return memblock_alloc_try_nid_nopanic(size, align, MEMBLOCK_LOW_LIMIT,
385-
ARCH_LOW_ADDRESS_LIMIT,
386-
NUMA_NO_NODE);
387-
}
388-
389-
static inline void * __init memblock_alloc_from_nopanic(phys_addr_t size,
390-
phys_addr_t align,
391-
phys_addr_t min_addr)
392-
{
393-
return memblock_alloc_try_nid_nopanic(size, align, min_addr,
394-
MEMBLOCK_ALLOC_ACCESSIBLE,
395-
NUMA_NO_NODE);
396-
}
397370

398371
static inline void * __init memblock_alloc_node(phys_addr_t size,
399372
phys_addr_t align, int nid)
@@ -402,14 +375,6 @@ static inline void * __init memblock_alloc_node(phys_addr_t size,
402375
MEMBLOCK_ALLOC_ACCESSIBLE, nid);
403376
}
404377

405-
static inline void * __init memblock_alloc_node_nopanic(phys_addr_t size,
406-
int nid)
407-
{
408-
return memblock_alloc_try_nid_nopanic(size, SMP_CACHE_BYTES,
409-
MEMBLOCK_LOW_LIMIT,
410-
MEMBLOCK_ALLOC_ACCESSIBLE, nid);
411-
}
412-
413378
static inline void __init memblock_free_early(phys_addr_t base,
414379
phys_addr_t size)
415380
{

kernel/dma/swiotlb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ swiotlb_init(int verbose)
256256
bytes = io_tlb_nslabs << IO_TLB_SHIFT;
257257

258258
/* Get IO TLB memory from the low pages */
259-
vstart = memblock_alloc_low_nopanic(PAGE_ALIGN(bytes), PAGE_SIZE);
259+
vstart = memblock_alloc_low(PAGE_ALIGN(bytes), PAGE_SIZE);
260260
if (vstart && !swiotlb_init_with_tbl(vstart, io_tlb_nslabs, verbose))
261261
return;
262262

kernel/printk/printk.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,14 +1143,7 @@ void __init setup_log_buf(int early)
11431143
if (!new_log_buf_len)
11441144
return;
11451145

1146-
if (early) {
1147-
new_log_buf =
1148-
memblock_alloc(new_log_buf_len, LOG_ALIGN);
1149-
} else {
1150-
new_log_buf = memblock_alloc_nopanic(new_log_buf_len,
1151-
LOG_ALIGN);
1152-
}
1153-
1146+
new_log_buf = memblock_alloc(new_log_buf_len, LOG_ALIGN);
11541147
if (unlikely(!new_log_buf)) {
11551148
pr_err("log_buf_len: %lu bytes not available\n",
11561149
new_log_buf_len);

mm/memblock.c

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,41 +1433,6 @@ void * __init memblock_alloc_try_nid_raw(
14331433
return ptr;
14341434
}
14351435

1436-
/**
1437-
* memblock_alloc_try_nid_nopanic - allocate boot memory block
1438-
* @size: size of memory block to be allocated in bytes
1439-
* @align: alignment of the region and block's size
1440-
* @min_addr: the lower bound of the memory region from where the allocation
1441-
* is preferred (phys address)
1442-
* @max_addr: the upper bound of the memory region from where the allocation
1443-
* is preferred (phys address), or %MEMBLOCK_ALLOC_ACCESSIBLE to
1444-
* allocate only from memory limited by memblock.current_limit value
1445-
* @nid: nid of the free area to find, %NUMA_NO_NODE for any node
1446-
*
1447-
* Public function, provides additional debug information (including caller
1448-
* info), if enabled. This function zeroes the allocated memory.
1449-
*
1450-
* Return:
1451-
* Virtual address of allocated memory block on success, NULL on failure.
1452-
*/
1453-
void * __init memblock_alloc_try_nid_nopanic(
1454-
phys_addr_t size, phys_addr_t align,
1455-
phys_addr_t min_addr, phys_addr_t max_addr,
1456-
int nid)
1457-
{
1458-
void *ptr;
1459-
1460-
memblock_dbg("%s: %llu bytes align=0x%llx nid=%d from=%pa max_addr=%pa %pF\n",
1461-
__func__, (u64)size, (u64)align, nid, &min_addr,
1462-
&max_addr, (void *)_RET_IP_);
1463-
1464-
ptr = memblock_alloc_internal(size, align,
1465-
min_addr, max_addr, nid);
1466-
if (ptr)
1467-
memset(ptr, 0, size);
1468-
return ptr;
1469-
}
1470-
14711436
/**
14721437
* memblock_alloc_try_nid - allocate boot memory block
14731438
* @size: size of memory block to be allocated in bytes

mm/page_alloc.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6445,8 +6445,8 @@ static void __ref setup_usemap(struct pglist_data *pgdat,
64456445
zone->pageblock_flags = NULL;
64466446
if (usemapsize) {
64476447
zone->pageblock_flags =
6448-
memblock_alloc_node_nopanic(usemapsize,
6449-
pgdat->node_id);
6448+
memblock_alloc_node(usemapsize, SMP_CACHE_BYTES,
6449+
pgdat->node_id);
64506450
if (!zone->pageblock_flags)
64516451
panic("Failed to allocate %ld bytes for zone %s pageblock flags on node %d\n",
64526452
usemapsize, zone->name, pgdat->node_id);
@@ -6679,7 +6679,8 @@ static void __ref alloc_node_mem_map(struct pglist_data *pgdat)
66796679
end = pgdat_end_pfn(pgdat);
66806680
end = ALIGN(end, MAX_ORDER_NR_PAGES);
66816681
size = (end - start) * sizeof(struct page);
6682-
map = memblock_alloc_node_nopanic(size, pgdat->node_id);
6682+
map = memblock_alloc_node(size, SMP_CACHE_BYTES,
6683+
pgdat->node_id);
66836684
if (!map)
66846685
panic("Failed to allocate %ld bytes for node %d memory map\n",
66856686
size, pgdat->node_id);
@@ -7959,8 +7960,7 @@ void *__init alloc_large_system_hash(const char *tablename,
79597960
size = bucketsize << log2qty;
79607961
if (flags & HASH_EARLY) {
79617962
if (flags & HASH_ZERO)
7962-
table = memblock_alloc_nopanic(size,
7963-
SMP_CACHE_BYTES);
7963+
table = memblock_alloc(size, SMP_CACHE_BYTES);
79647964
else
79657965
table = memblock_alloc_raw(size,
79667966
SMP_CACHE_BYTES);

mm/page_ext.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ static int __init alloc_node_page_ext(int nid)
161161

162162
table_size = get_entry_size() * nr_pages;
163163

164-
base = memblock_alloc_try_nid_nopanic(
164+
base = memblock_alloc_try_nid(
165165
table_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS),
166166
MEMBLOCK_ALLOC_ACCESSIBLE, nid);
167167
if (!base)

mm/percpu.c

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1905,7 +1905,7 @@ struct pcpu_alloc_info * __init pcpu_alloc_alloc_info(int nr_groups,
19051905
__alignof__(ai->groups[0].cpu_map[0]));
19061906
ai_size = base_size + nr_units * sizeof(ai->groups[0].cpu_map[0]);
19071907

1908-
ptr = memblock_alloc_nopanic(PFN_ALIGN(ai_size), PAGE_SIZE);
1908+
ptr = memblock_alloc(PFN_ALIGN(ai_size), PAGE_SIZE);
19091909
if (!ptr)
19101910
return NULL;
19111911
ai = ptr;
@@ -2496,7 +2496,7 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
24962496
size_sum = ai->static_size + ai->reserved_size + ai->dyn_size;
24972497
areas_size = PFN_ALIGN(ai->nr_groups * sizeof(void *));
24982498

2499-
areas = memblock_alloc_nopanic(areas_size, SMP_CACHE_BYTES);
2499+
areas = memblock_alloc(areas_size, SMP_CACHE_BYTES);
25002500
if (!areas) {
25012501
rc = -ENOMEM;
25022502
goto out_free;
@@ -2729,8 +2729,7 @@ EXPORT_SYMBOL(__per_cpu_offset);
27292729
static void * __init pcpu_dfl_fc_alloc(unsigned int cpu, size_t size,
27302730
size_t align)
27312731
{
2732-
return memblock_alloc_from_nopanic(
2733-
size, align, __pa(MAX_DMA_ADDRESS));
2732+
return memblock_alloc_from(size, align, __pa(MAX_DMA_ADDRESS));
27342733
}
27352734

27362735
static void __init pcpu_dfl_fc_free(void *ptr, size_t size)
@@ -2778,9 +2777,7 @@ void __init setup_per_cpu_areas(void)
27782777
void *fc;
27792778

27802779
ai = pcpu_alloc_alloc_info(1, 1);
2781-
fc = memblock_alloc_from_nopanic(unit_size,
2782-
PAGE_SIZE,
2783-
__pa(MAX_DMA_ADDRESS));
2780+
fc = memblock_alloc_from(unit_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS));
27842781
if (!ai || !fc)
27852782
panic("Failed to allocate memory for percpu areas.");
27862783
/* kmemleak tracks the percpu allocations separately */

mm/sparse.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,7 @@ sparse_early_usemaps_alloc_pgdat_section(struct pglist_data *pgdat,
330330
limit = goal + (1UL << PA_SECTION_SHIFT);
331331
nid = early_pfn_to_nid(goal >> PAGE_SHIFT);
332332
again:
333-
p = memblock_alloc_try_nid_nopanic(size,
334-
SMP_CACHE_BYTES, goal, limit,
335-
nid);
333+
p = memblock_alloc_try_nid(size, SMP_CACHE_BYTES, goal, limit, nid);
336334
if (!p && limit) {
337335
limit = 0;
338336
goto again;
@@ -386,7 +384,7 @@ static unsigned long * __init
386384
sparse_early_usemaps_alloc_pgdat_section(struct pglist_data *pgdat,
387385
unsigned long size)
388386
{
389-
return memblock_alloc_node_nopanic(size, pgdat->node_id);
387+
return memblock_alloc_node(size, SMP_CACHE_BYTES, pgdat->node_id);
390388
}
391389

392390
static void __init check_usemap_section_nr(int nid, unsigned long *usemap)

0 commit comments

Comments
 (0)