2008-06-24 08:23:54

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 6/14] arch/parisc: Eliminate NULL test and memset after alloc_bootmem

From: Julia Lawall <[email protected]>

As noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b,
alloc_bootmem and related functions never return NULL and always return a
zeroed region of memory. Thus a NULL test or memset after calls to these
functions is unnecessary.

arch/parisc/mm/init.c | 1 -
1 file changed, 1 deletion(-)

This was fixed using the following semantic patch.
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
expression E;
statement S;
@@

E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
... when != E
(
- BUG_ON (E == NULL);
|
- if (E == NULL) S
)

@@
expression E,E1;
@@

E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
... when != E
- memset(E,0,E1);
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>
---

diff -u -p a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -765,7 +765,6 @@ static void __init pagetable_init(void)
#endif

empty_zero_page = alloc_bootmem_pages(PAGE_SIZE);
- memset(empty_zero_page, 0, PAGE_SIZE);
}

static void __init gateway_init(void)


2008-06-28 17:55:18

by Grant Grundler

[permalink] [raw]
Subject: Re: [PATCH 6/14] arch/parisc: Eliminate NULL test and memset after alloc_bootmem

On Tue, Jun 24, 2008 at 10:23:28AM +0200, Julia Lawall wrote:
> From: Julia Lawall <[email protected]>
>
> As noted by Akinobu Mita in patch b1fceac2b9e04d278316b2faddf276015fc06e3b,
> alloc_bootmem and related functions never return NULL and always return a
> zeroed region of memory. Thus a NULL test or memset after calls to these
> functions is unnecessary.
>
> arch/parisc/mm/init.c | 1 -
> 1 file changed, 1 deletion(-)
>
> This was fixed using the following semantic patch.
> (http://www.emn.fr/x-info/coccinelle/)
>
> // <smpl>
> @@
> expression E;
> statement S;
> @@
>
> E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
> ... when != E
> (
> - BUG_ON (E == NULL);
> |
> - if (E == NULL) S
> )
>
> @@
> expression E,E1;
> @@
>
> E = \(alloc_bootmem\|alloc_bootmem_low\|alloc_bootmem_pages\|alloc_bootmem_low_pages\)(...)
> ... when != E
> - memset(E,0,E1);
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>

Acked-by: Grant Grundler <[email protected]>

thanks,
grant

> ---
>
> diff -u -p a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
> --- a/arch/parisc/mm/init.c
> +++ b/arch/parisc/mm/init.c
> @@ -765,7 +765,6 @@ static void __init pagetable_init(void)
> #endif
>
> empty_zero_page = alloc_bootmem_pages(PAGE_SIZE);
> - memset(empty_zero_page, 0, PAGE_SIZE);
> }
>
> static void __init gateway_init(void)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html