Re: [PATCH 2/14] [TIPC] Debug print buffer enhancements and fixes

2006-10-16 Thread David Miller
From: Per Liden [EMAIL PROTECTED]
Date: Fri, 13 Oct 2006 13:37:43 +0200

 From: Allan Stephens [EMAIL PROTECTED]
 
 This change modifies TIPC's print buffer code as follows:
 1) Now supports small print buffers (min. size reduced from 512 bytes to 64)
 2) Now uses TIPC_NULL print buffer structure to indicate null device
instead of NULL pointer (this simplified error handling)
 3) Fixed misuse of console buffer structure by tipc_dump()
 4) Added and corrected comments in various places
 
 Signed-off-by: Allan Stephens [EMAIL PROTECTED]
 Signed-off-by: Per Liden [EMAIL PROTECTED]

Applied, please run trailing-whitespace checks on your patches,
f.e. using git apply --check --whitespace=error-all diff.
Because often I have to fix up problems like the following in
your submissions:

[EMAIL PROTECTED]:~/src/GIT/net-2.6$ pcheck diff
+ git apply --check --whitespace=error-all diff
Adds trailing whitespace.
diff:25: * TIPC_LOG: TIPC log buffer 
Adds trailing whitespace.
diff:105: * 
Adds trailing whitespace.
diff:148: * 
Adds trailing whitespace.
diff:334:   printk(\n Start of %s log dump \n\n, 
Adds trailing whitespace.
diff:366:   tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, 
GFP_ATOMIC), 
Adds trailing whitespace.
diff:393: * @next: used to link print buffers when printing to more than one at 
a time 
Adds trailing whitespace.
diff:395: 
fatal: 7 lines add trailing whitespaces.

Thanks.
-
To unsubscribe from this list: send the line unsubscribe netdev in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/14] [TIPC] Debug print buffer enhancements and fixes

2006-10-13 Thread Per Liden
From: Allan Stephens [EMAIL PROTECTED]

This change modifies TIPC's print buffer code as follows:
1) Now supports small print buffers (min. size reduced from 512 bytes to 64)
2) Now uses TIPC_NULL print buffer structure to indicate null device
   instead of NULL pointer (this simplified error handling)
3) Fixed misuse of console buffer structure by tipc_dump()
4) Added and corrected comments in various places

Signed-off-by: Allan Stephens [EMAIL PROTECTED]
Signed-off-by: Per Liden [EMAIL PROTECTED]
---
 net/tipc/core.h |   16 +++---
 net/tipc/dbg.c  |  136 ---
 net/tipc/dbg.h  |   15 +-
 3 files changed, 110 insertions(+), 57 deletions(-)

diff --git a/net/tipc/core.h b/net/tipc/core.h
index 762aac2..31331e8 100644
--- a/net/tipc/core.h
+++ b/net/tipc/core.h
@@ -65,7 +65,7 @@ #include linux/vmalloc.h
 #define assert(i)  BUG_ON(!(i))
 
 struct tipc_msg;
-extern struct print_buf *TIPC_CONS, *TIPC_LOG;
+extern struct print_buf *TIPC_NULL, *TIPC_CONS, *TIPC_LOG;
 extern struct print_buf *TIPC_TEE(struct print_buf *, struct print_buf *);
 void tipc_msg_print(struct print_buf*,struct tipc_msg *,const char*);
 void tipc_printf(struct print_buf *, const char *fmt, ...);
@@ -94,11 +94,11 @@ #define dump(fmt, arg...) do {if (DBG_OU
  * here, or on a per .c file basis, by redefining these symbols.  The following
  * print buffer options are available:
  *
- * NULL: Output to null print buffer (i.e. 
print nowhere)
- * TIPC_CONS   : Output to system console
- * TIPC_LOG: Output to TIPC log buffer 
- * buf: Output to user-defined buffer (struct 
print_buf *)
- * TIPC_TEE(buf_a,buf_b) : Output to two print buffers (eg. 
TIPC_TEE(TIPC_CONS,TIPC_LOG) )
+ * TIPC_NULL  : null buffer (i.e. print nowhere)
+ * TIPC_CONS  : system console
+ * TIPC_LOG   : TIPC log buffer 
+ * buf   : user-defined buffer (struct print_buf *)
+ * TIPC_TEE(buf_a,buf_b) : list of buffers (eg. TIPC_TEE(TIPC_CONS,TIPC_LOG))
  */
 
 #ifndef TIPC_OUTPUT
@@ -106,7 +106,7 @@ #define TIPC_OUTPUT TIPC_TEE(TIPC_CONS,T
 #endif
 
 #ifndef DBG_OUTPUT
-#define DBG_OUTPUT NULL
+#define DBG_OUTPUT TIPC_NULL
 #endif
 
 #else
@@ -136,7 +136,7 @@ #undef  TIPC_OUTPUT
 #define TIPC_OUTPUT TIPC_CONS
 
 #undef  DBG_OUTPUT
-#define DBG_OUTPUT NULL
+#define DBG_OUTPUT TIPC_NULL
 
 #endif   
 
diff --git a/net/tipc/dbg.c b/net/tipc/dbg.c
index 5513065..48e33ab 100644
--- a/net/tipc/dbg.c
+++ b/net/tipc/dbg.c
@@ -1,8 +1,8 @@
 /*
- * net/tipc/dbg.c: TIPC print buffer routines for debuggign
+ * net/tipc/dbg.c: TIPC print buffer routines for debugging
  * 
  * Copyright (c) 1996-2006, Ericsson AB
- * Copyright (c) 2005, Wind River Systems
+ * Copyright (c) 2005-2006, Wind River Systems
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,11 +38,12 @@ #include core.h
 #include config.h
 #include dbg.h
 
-#define MAX_STRING 512
-
-static char print_string[MAX_STRING];
+static char print_string[TIPC_PB_MAX_STR];
 static DEFINE_SPINLOCK(print_lock);
 
+static struct print_buf null_buf = { NULL, 0, NULL, NULL };
+struct print_buf *TIPC_NULL = null_buf;
+
 static struct print_buf cons_buf = { NULL, 0, NULL, NULL };
 struct print_buf *TIPC_CONS = cons_buf;
 
@@ -62,68 +63,83 @@ #define FORMAT(PTR,LEN,FMT) \
 /*
  * Locking policy when using print buffers.
  *
- * 1) Routines of the form printbuf_XXX() rely on the caller to prevent
- *simultaneous use of the print buffer(s) being manipulated.
- * 2) tipc_printf() uses 'print_lock' to prevent simultaneous use of
- *'print_string' and to protect its print buffer(s).
- * 3) TIPC_TEE() uses 'print_lock' to protect its print buffer(s).
- * 4) Routines of the form log_XXX() uses 'print_lock' to protect TIPC_LOG.
+ * The following routines use 'print_lock' for protection:
+ * 1) tipc_printf()  - to protect its print buffer(s) and 'print_string'
+ * 2) TIPC_TEE() - to protect its print buffer(s)
+ * 3) tipc_dump()- to protect its print buffer(s) and 'print_string'
+ * 4) tipc_log_XXX() - to protect TIPC_LOG
+ *
+ * All routines of the form tipc_printbuf_XXX() rely on the caller to prevent
+ * simultaneous use of the print buffer(s) being manipulated.
  */
 
 /**
  * tipc_printbuf_init - initialize print buffer to empty
+ * @pb: pointer to print buffer structure
+ * @raw: pointer to character array used by print buffer
+ * @size: size of character array
+ * 
+ * Makes the print buffer a null device that discards anything written to it
+ * if the character array is too small (or absent).
  */
 
-void tipc_printbuf_init(struct print_buf *pb, char *raw, u32 sz)
+void tipc_printbuf_init(struct print_buf *pb, char *raw, u32 size)
 {
-   if (!pb || !raw || (sz  (MAX_STRING + 1)))
-   return;
-
-   pb-crs = pb-buf = raw;
-