tipc: Simplify log buffer resizing
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>
This commit is contained in:
parent
f74d505b58
commit
025adbe8e5
|
@ -529,7 +529,7 @@ struct sk_buff *tipc_cfg_do_cmd(u32 orig_node, u16 cmd, const void *request_area
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case TIPC_CMD_SET_LOG_SIZE:
|
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;
|
break;
|
||||||
case TIPC_CMD_DUMP_LOG:
|
case TIPC_CMD_DUMP_LOG:
|
||||||
rep_tlv_buf = tipc_log_dump();
|
rep_tlv_buf = tipc_log_dump();
|
||||||
|
|
|
@ -182,7 +182,7 @@ static int __init tipc_init(void)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
tipc_log_reinit(CONFIG_TIPC_LOG);
|
tipc_log_resize(CONFIG_TIPC_LOG);
|
||||||
info("Activated (version " TIPC_MOD_VER
|
info("Activated (version " TIPC_MOD_VER
|
||||||
" compiled " __DATE__ " " __TIME__ ")\n");
|
" compiled " __DATE__ " " __TIME__ ")\n");
|
||||||
|
|
||||||
|
@ -209,7 +209,7 @@ static void __exit tipc_exit(void)
|
||||||
tipc_core_stop_net();
|
tipc_core_stop_net();
|
||||||
tipc_core_stop();
|
tipc_core_stop();
|
||||||
info("Deactivated\n");
|
info("Deactivated\n");
|
||||||
tipc_log_stop();
|
tipc_log_resize(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(tipc_init);
|
module_init(tipc_init);
|
||||||
|
|
|
@ -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);
|
spin_lock_bh(&print_lock);
|
||||||
if (TIPC_LOG->buf) {
|
if (TIPC_LOG->buf) {
|
||||||
kfree(TIPC_LOG->buf);
|
kfree(TIPC_LOG->buf);
|
||||||
TIPC_LOG->buf = NULL;
|
TIPC_LOG->buf = NULL;
|
||||||
}
|
}
|
||||||
|
if (log_size) {
|
||||||
|
if (log_size < TIPC_PB_MIN_SIZE)
|
||||||
|
log_size = TIPC_PB_MIN_SIZE;
|
||||||
|
tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC),
|
||||||
|
log_size);
|
||||||
|
}
|
||||||
spin_unlock_bh(&print_lock);
|
spin_unlock_bh(&print_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tipc_log_reinit - (re)initialize TIPC log print buffer
|
* tipc_log_resize_cmd - reconfigure size of TIPC log buffer
|
||||||
* @log_size: print buffer size to use
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void tipc_log_reinit(int log_size)
|
struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area, int req_tlv_space)
|
||||||
{
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* tipc_log_resize - reconfigure size of TIPC log buffer
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct sk_buff *tipc_log_resize(const void *req_tlv_area, int req_tlv_space)
|
|
||||||
{
|
{
|
||||||
u32 value;
|
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))
|
if (value != delimit(value, 0, 32768))
|
||||||
return tipc_cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
|
return tipc_cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
|
||||||
" (log size must be 0-32768)");
|
" (log size must be 0-32768)");
|
||||||
tipc_log_reinit(value);
|
tipc_log_resize(value);
|
||||||
return tipc_cfg_reply_none();
|
return tipc_cfg_reply_none();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,10 +61,10 @@ int tipc_printbuf_empty(struct print_buf *pb);
|
||||||
int tipc_printbuf_validate(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_printbuf_move(struct print_buf *pb_to, struct print_buf *pb_from);
|
||||||
|
|
||||||
void tipc_log_reinit(int log_size);
|
void tipc_log_resize(int log_size);
|
||||||
void tipc_log_stop(void);
|
|
||||||
|
|
||||||
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);
|
struct sk_buff *tipc_log_dump(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Reference in New Issue