alloc_bootmem and related functions never return NULL and always return
a zeroed region of memory. Thus a BUG_ON the NULL test or memset after
calls to these functions is unnecessary.
The following Coccinelle semantic patch was used for making the change:
@@
expression E;
statement S;
@@
E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
... when != E
- BUG_ON (E == NULL);
@@
expression E,E1;
@@
E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
... when != E
- memset(E,0,E1);
Signed-off-by: Himangi Saraogi <[email protected]>
Acked-by: Julia Lawall <[email protected]>
---
arch/x86/platform/olpc/olpc_dt.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
index d6ee929..280645d 100644
--- a/arch/x86/platform/olpc/olpc_dt.c
+++ b/arch/x86/platform/olpc/olpc_dt.c
@@ -142,9 +142,7 @@ void * __init prom_early_alloc(unsigned long size)
* wasted bootmem) and hand off chunks of it to callers.
*/
res = alloc_bootmem(chunk_size);
- BUG_ON(!res);
prom_early_allocated += chunk_size;
- memset(res, 0, chunk_size);
free_mem = chunk_size;
mem = res;
}
--
1.9.1
On Sat, 19 Jul 2014, Himangi Saraogi wrote:
> alloc_bootmem and related functions never return NULL and always return
> a zeroed region of memory. Thus a BUG_ON the NULL test or memset after
> calls to these functions is unnecessary.
>
> The following Coccinelle semantic patch was used for making the change:
>
> @@
> expression E;
> statement S;
> @@
>
> E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
> ... when != E
> - BUG_ON (E == NULL);
>
> @@
> expression E,E1;
> @@
>
> E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
> ... when != E
> - memset(E,0,E1);
>
> Signed-off-by: Himangi Saraogi <[email protected]>
> Acked-by: Julia Lawall <[email protected]>
Acked-by: David Rientjes <[email protected]>
Many callers of alloc_bootmem() do not check for the return value because
of this, there's no fallback available at this part in bootstrap so
there's nothing else that can be done.