tipc: Simplify log buffer resizing
authorAllan Stephens <allan.stephens@windriver.com>
Mon, 5 May 2008 08:20:04 +0000 (01:20 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 5 May 2008 08:20:04 +0000 (01:20 -0700)
This patch simplifies & standardizes the way TIPC's print buffer
log is resized.  Code to terminate use of the log buffer is
eliminated by simply setting the log buffer size to 0 bytes.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/config.c
net/tipc/core.c
net/tipc/dbg.c
net/tipc/dbg.h

index c71337a..91d56f8 100644 (file)
@@ -529,7 +529,7 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
                break;
 #endif
        case TIPC_CMD_SET_LOG_SIZE:
-               rep_tlv_buf = tipc_log_resize(req_tlv_area, req_tlv_space);
+               rep_tlv_buf = tipc_log_resize_cmd(req_tlv_area, req_tlv_space);
                break;
        case TIPC_CMD_DUMP_LOG:
                rep_tlv_buf = tipc_log_dump();
index 740aac5..862d415 100644 (file)
@@ -182,7 +182,7 @@ static int __init tipc_init(void)
 {
        int res;
 
-       tipc_log_reinit(CONFIG_TIPC_LOG);
+       tipc_log_resize(CONFIG_TIPC_LOG);
        info("Activated (version " TIPC_MOD_VER
             " compiled " __DATE__ " " __TIME__ ")\n");
 
@@ -209,7 +209,7 @@ static void __exit tipc_exit(void)
        tipc_core_stop_net();
        tipc_core_stop();
        info("Deactivated\n");
-       tipc_log_stop();
+       tipc_log_resize(0);
 }
 
 module_init(tipc_init);
index e809d2a..1a8d0a2 100644 (file)
@@ -350,43 +350,31 @@ void tipc_dump(struct print_buf *pb, const char *fmt, ...)
 }
 
 /**
- * tipc_log_stop - free up TIPC log print buffer
+ * tipc_log_resize - change the size of the TIPC log buffer
+ * @log_size: print buffer size to use
  */
 
-void tipc_log_stop(void)
+void tipc_log_resize(int log_size)
 {
        spin_lock_bh(&print_lock);
        if (TIPC_LOG->buf) {
                kfree(TIPC_LOG->buf);
                TIPC_LOG->buf = NULL;
        }
-       spin_unlock_bh(&print_lock);
-}
-
-/**
- * tipc_log_reinit - (re)initialize TIPC log print buffer
- * @log_size: print buffer size to use
- */
-
-void tipc_log_reinit(int log_size)
-{
-       tipc_log_stop();
-
        if (log_size) {
                if (log_size < TIPC_PB_MIN_SIZE)
                        log_size = TIPC_PB_MIN_SIZE;
-               spin_lock_bh(&print_lock);
                tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC),
                                   log_size);
-               spin_unlock_bh(&print_lock);
        }
+       spin_unlock_bh(&print_lock);
 }
 
 /**
- * tipc_log_resize - reconfigure size of TIPC log buffer
+ * tipc_log_resize_cmd - reconfigure size of TIPC log buffer
  */
 
-struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space)
+struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area, int req_tlv_space)
 {
        u32 value;
 
@@ -397,7 +385,7 @@ struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space)
        if (value != delimit(value, 0, 32768))
                return tipc_cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
                                                   " (log size must be 0-32768)");
-       tipc_log_reinit(value);
+       tipc_log_resize(value);
        return tipc_cfg_reply_none();
 }
 
index c01b085..718a5db 100644 (file)
@@ -61,10 +61,10 @@ int  tipc_printbuf_empty(struct print_buf *pb);
 int  tipc_printbuf_validate(struct print_buf *pb);
 void tipc_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
 
-void tipc_log_reinit(int log_size);
-void tipc_log_stop(void);
+void tipc_log_resize(int log_size);
 
-struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space);
+struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area,
+                                   int req_tlv_space);
 struct sk_buff *tipc_log_dump(void);
 
 #endif