lkml.org 
[lkml]   [2005]   [Sep]   [13]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateTue, 13 Sep 2005 10:02:38 +0300 (EEST)
FromPekka J Enberg <>
SubjectRe: [PATCH] use kzalloc instead of malloc+memset
Dmitry Torokhov <dtor_core@ameritech.net> wrote:
> > FWIW I also prefer spelling out the structure I am allocating.

On Mon, 12 Sep 2005, Andrew Morton wrote:
> It hurts readability.  Quick question: is this code correct?
> 
> 	dev = kmalloc(sizeof(struct net_device), GFP_KERNEL);
> 
> you don't know.  You have to go hunting down the declaration of `dev' to
> find out.

Andrew, how about something like this?

			Pekka

[PATCH] CodingStyle: memory allocation

This patch adds a new chapter on memory allocation to Documentation/CodingStyle.

Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
---
 CodingStyle |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletion(-)
Index: 2.6-mm/Documentation/CodingStyle
===================================================================
--- 2.6-mm.orig/Documentation/CodingStyle
+++ 2.6-mm/Documentation/CodingStyle
@@ -410,7 +410,26 @@ Kernel messages do not have to be termin
 Printing numbers in parentheses (%d) adds no value and should be avoided.
 
 
-		Chapter 13: References
+		Chapter 13: Allocating memory
+
+The kernel provides the following general purpose memory allocators:
+kmalloc(), kzalloc(), kcalloc(), and vmalloc().  Please refer to the API
+documentation for further information about them.
+
+The preferred form for passing a size of a struct is the following:
+
+	p = kmalloc(sizeof(*p), ...);
+
+The alternative form where struct name is spelled out hurts readability and
+introduces an opportunity for a bug when the pointer variable type is changed
+but the corresponding sizeof that is passed to a memory allocator is not.
+
+Casting the return value which is a void pointer is redundant. The conversion
+from void pointer to any other pointer type is guaranteed by the C programming
+language.
+
+
+		Chapter 14: References
 
 The C Programming Language, Second Edition
 by Brian W. Kernighan and Dennis M. Ritchie.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-09-13 07:05    [from the cache]
©2003-2008