2013-04-07 10:18:03

by Rakib Mullick

[permalink] [raw]
Subject: [PATCH] auditsc: Use kzalloc instead of kmalloc+memset.

In function audit_alloc_context(), use kzalloc, instead of kmalloc+memset. Patch also renames audit_zero_context() to
audit_set_context(), to represent it's inner workings properly.

Signed-off-by: Rakib Mullick <[email protected]>
---

diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index a371f85..f5b6dc5 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -1034,10 +1034,9 @@ static inline void audit_free_aux(struct audit_context *context)
}
}

-static inline void audit_zero_context(struct audit_context *context,
+static inline void audit_set_context(struct audit_context *context,
enum audit_state state)
{
- memset(context, 0, sizeof(*context));
context->state = state;
context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
}
@@ -1046,9 +1045,10 @@ static inline struct audit_context *audit_alloc_context(enum audit_state state)
{
struct audit_context *context;

- if (!(context = kmalloc(sizeof(*context), GFP_KERNEL)))
+ context = kzalloc(sizeof(*context), GFP_KERNEL);
+ if (!context)
return NULL;
- audit_zero_context(context, state);
+ audit_set_context(context, state);
INIT_LIST_HEAD(&context->killed_trees);
INIT_LIST_HEAD(&context->names_list);
return context;


2013-04-08 21:43:44

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] auditsc: Use kzalloc instead of kmalloc+memset.

On Sun, 07 Apr 2013 16:14:18 +0600 Rakib Mullick <[email protected]> wrote:

> In function audit_alloc_context(), use kzalloc, instead of kmalloc+memset. Patch also renames audit_zero_context() to
> audit_set_context(), to represent it's inner workings properly.
>
> ...
>
> --- a/kernel/auditsc.c
> +++ b/kernel/auditsc.c
> @@ -1034,10 +1034,9 @@ static inline void audit_free_aux(struct audit_context *context)
> }
> }
>
> -static inline void audit_zero_context(struct audit_context *context,
> +static inline void audit_set_context(struct audit_context *context,
> enum audit_state state)
> {
> - memset(context, 0, sizeof(*context));
> context->state = state;
> context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
> }
> @@ -1046,9 +1045,10 @@ static inline struct audit_context *audit_alloc_context(enum audit_state state)
> {
> struct audit_context *context;
>
> - if (!(context = kmalloc(sizeof(*context), GFP_KERNEL)))
> + context = kzalloc(sizeof(*context), GFP_KERNEL);
> + if (!context)
> return NULL;
> - audit_zero_context(context, state);
> + audit_set_context(context, state);
> INIT_LIST_HEAD(&context->killed_trees);
> INIT_LIST_HEAD(&context->names_list);
> return context;

Fair enough. I'd go futher...

From: Andrew Morton <[email protected]>
Subject: auditsc-use-kzalloc-instead-of-kmallocmemset-fix

remove audit_set_context() altogether - fold it into its caller

Cc: Al Viro <[email protected]>
Cc: Eric Paris <[email protected]>
Cc: Rakib Mullick <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

kernel/auditsc.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff -puN kernel/auditsc.c~auditsc-use-kzalloc-instead-of-kmallocmemset-fix kernel/auditsc.c
--- a/kernel/auditsc.c~auditsc-use-kzalloc-instead-of-kmallocmemset-fix
+++ a/kernel/auditsc.c
@@ -1034,13 +1034,6 @@ static inline void audit_free_aux(struct
}
}

-static inline void audit_set_context(struct audit_context *context,
- enum audit_state state)
-{
- context->state = state;
- context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
-}
-
static inline struct audit_context *audit_alloc_context(enum audit_state state)
{
struct audit_context *context;
@@ -1048,7 +1041,8 @@ static inline struct audit_context *audi
context = kzalloc(sizeof(*context), GFP_KERNEL);
if (!context)
return NULL;
- audit_set_context(context, state);
+ context->state = state;
+ context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
INIT_LIST_HEAD(&context->killed_trees);
INIT_LIST_HEAD(&context->names_list);
return context;
_

2013-04-09 04:37:55

by Rakib Mullick

[permalink] [raw]
Subject: Re: [PATCH] auditsc: Use kzalloc instead of kmalloc+memset.

On Tue, Apr 9, 2013 at 3:43 AM, Andrew Morton <[email protected]> wrote:
>
> Fair enough. I'd go futher...
>
> From: Andrew Morton <[email protected]>
> Subject: auditsc-use-kzalloc-instead-of-kmallocmemset-fix
>
> remove audit_set_context() altogether - fold it into its caller
>
> Cc: Al Viro <[email protected]>
> Cc: Eric Paris <[email protected]>
> Cc: Rakib Mullick <[email protected]>
> Signed-off-by: Andrew Morton <[email protected]>
> ---
>
> kernel/auditsc.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff -puN kernel/auditsc.c~auditsc-use-kzalloc-instead-of-kmallocmemset-fix kernel/auditsc.c
> --- a/kernel/auditsc.c~auditsc-use-kzalloc-instead-of-kmallocmemset-fix
> +++ a/kernel/auditsc.c
> @@ -1034,13 +1034,6 @@ static inline void audit_free_aux(struct
> }
> }
>
> -static inline void audit_set_context(struct audit_context *context,
> - enum audit_state state)
> -{
> - context->state = state;
> - context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
> -}
> -
> static inline struct audit_context *audit_alloc_context(enum audit_state state)
> {
> struct audit_context *context;
> @@ -1048,7 +1041,8 @@ static inline struct audit_context *audi
> context = kzalloc(sizeof(*context), GFP_KERNEL);
> if (!context)
> return NULL;
> - audit_set_context(context, state);
> + context->state = state;
> + context->prio = state == AUDIT_RECORD_CONTEXT ? ~0ULL : 0;
> INIT_LIST_HEAD(&context->killed_trees);
> INIT_LIST_HEAD(&context->names_list);
> return context;
> _
>
Yes, this one is better than my patch and it's due to its diff stat.

Thanks,
Rakib.