Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb98ec71 authored by Allan Stephens's avatar Allan Stephens Committed by David S. Miller
Browse files

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: default avatarAllan Stephens <allan.stephens@windriver.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 025adbe8
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * net/tipc/dbg.c: TIPC print buffer routines for debugging
 *
 * Copyright (c) 1996-2006, Ericsson AB
 * Copyright (c) 2005-2006, Wind River Systems
 * Copyright (c) 2005-2007, Wind River Systems
 * All rights reserved.
 *
 * 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
 */

void tipc_log_resize(int log_size)
int tipc_log_resize(int log_size)
{
	int res = 0;

	spin_lock_bh(&print_lock);
	if (TIPC_LOG->buf) {
		kfree(TIPC_LOG->buf);
@@ -366,8 +368,11 @@ void tipc_log_resize(int log_size)
			log_size = TIPC_PB_MIN_SIZE;
		tipc_printbuf_init(TIPC_LOG, kmalloc(log_size, GFP_ATOMIC),
				   log_size);
		res = !TIPC_LOG->buf;
	}
	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))
		return tipc_cfg_reply_error_string(TIPC_CFG_INVALID_VALUE
						   " (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();
}

+2 −2
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
 * net/tipc/dbg.h: Include file for TIPC print buffer routines
 *
 * Copyright (c) 1997-2006, Ericsson AB
 * Copyright (c) 2005-2006, Wind River Systems
 * Copyright (c) 2005-2007, Wind River Systems
 * All rights reserved.
 *
 * 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);
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,
				    int req_tlv_space);