forked from luck/tmp_suning_uos_patched
tipc: Provide feedback when log buffer resizing fails
This patch provides feedback to the user when TIPC is unable to set its log buffer to the requested size. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
025adbe8e5
commit
fb98ec71c7
|
@ -2,7 +2,7 @@
|
||||||
* net/tipc/dbg.c: TIPC print buffer routines for debugging
|
* net/tipc/dbg.c: TIPC print buffer routines for debugging
|
||||||
*
|
*
|
||||||
* Copyright (c) 1996-2006, Ericsson AB
|
* Copyright (c) 1996-2006, Ericsson AB
|
||||||
* Copyright (c) 2005-2006, Wind River Systems
|
* Copyright (c) 2005-2007, Wind River Systems
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -354,8 +354,10 @@ void tipc_dump(struct print_buf *pb, const char *fmt, ...)
|
||||||
* @log_size: print buffer size to use
|
* @log_size: print buffer size to use
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void tipc_log_resize(int log_size)
|
int tipc_log_resize(int log_size)
|
||||||
{
|
{
|
||||||
|
int res = 0;
|
||||||
|
|
||||||
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);
|
||||||
|
@ -366,8 +368,11 @@ void tipc_log_resize(int log_size)
|
||||||
log_size = TIPC_PB_MIN_SIZE;
|
log_size = TIPC_PB_MIN_SIZE;
|
||||||
tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC),
|
tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC),
|
||||||
log_size);
|
log_size);
|
||||||
|
res = !TIPC_LOG->buf;
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&print_lock);
|
spin_unlock_bh(&print_lock);
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -385,7 +390,9 @@ struct sk_buff *tipc_log_resize_cmd(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_resize(value);
|
if (tipc_log_resize(value))
|
||||||
|
return tipc_cfg_reply_error_string(
|
||||||
|
"unable to create specified log (log size is now 0)");
|
||||||
return tipc_cfg_reply_none();
|
return tipc_cfg_reply_none();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* net/tipc/dbg.h: Include file for TIPC print buffer routines
|
* net/tipc/dbg.h: Include file for TIPC print buffer routines
|
||||||
*
|
*
|
||||||
* Copyright (c) 1997-2006, Ericsson AB
|
* Copyright (c) 1997-2006, Ericsson AB
|
||||||
* Copyright (c) 2005-2006, Wind River Systems
|
* Copyright (c) 2005-2007, Wind River Systems
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -61,7 +61,7 @@ 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_resize(int log_size);
|
int tipc_log_resize(int log_size);
|
||||||
|
|
||||||
struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area,
|
struct sk_buff *tipc_log_resize_cmd(const void *req_tlv_area,
|
||||||
int req_tlv_space);
|
int req_tlv_space);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user