diff options
| author | Richard Alpe <richard.alpe@ericsson.com> | 2015-02-09 09:50:17 +0100 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2015-02-09 13:20:49 -0800 | 
| commit | 5a81a6377b6083fccffdfb7a21ec080b8d58475b (patch) | |
| tree | c7fd10b1e5a0a49f2d4859e478ca19d022178e45 /net/tipc | |
| parent | 3c26181c5b1b0b49e147bac8a8d012234f813a5e (diff) | |
tipc: convert legacy nl stats show to nl compat
Convert TIPC_CMD_SHOW_STATS to compat layer. This command does not
have any counterpart in the new API, meaning it now solely exists as a
function in the compat layer.
Signed-off-by: Richard Alpe <richard.alpe@ericsson.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
| -rw-r--r-- | net/tipc/config.c | 35 | ||||
| -rw-r--r-- | net/tipc/netlink_compat.c | 15 | 
2 files changed, 15 insertions, 35 deletions
| diff --git a/net/tipc/config.c b/net/tipc/config.c index 019f46c0690c..c2ad2ff32a15 100644 --- a/net/tipc/config.c +++ b/net/tipc/config.c @@ -83,38 +83,6 @@ struct sk_buff *tipc_cfg_reply_string_type(u16 tlv_type, char *string)  	return buf;  } -static struct sk_buff *tipc_show_stats(void) -{ -	struct sk_buff *buf; -	struct tlv_desc *rep_tlv; -	char *pb; -	int pb_len; -	int str_len; -	u32 value; - -	if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_UNSIGNED)) -		return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR); - -	value = ntohl(*(u32 *)TLV_DATA(req_tlv_area)); -	if (value != 0) -		return tipc_cfg_reply_error_string("unsupported argument"); - -	buf = tipc_cfg_reply_alloc(TLV_SPACE(ULTRA_STRING_MAX_LEN)); -	if (buf == NULL) -		return NULL; - -	rep_tlv = (struct tlv_desc *)buf->data; -	pb = TLV_DATA(rep_tlv); -	pb_len = ULTRA_STRING_MAX_LEN; - -	str_len = tipc_snprintf(pb, pb_len, "TIPC version " TIPC_MOD_VER "\n"); -	str_len += 1;	/* for "\0" */ -	skb_put(buf, TLV_SPACE(str_len)); -	TLV_SET(rep_tlv, TIPC_TLV_ULTRA_STRING, NULL, str_len); - -	return buf; -} -  struct sk_buff *tipc_cfg_do_cmd(struct net *net, u32 orig_node, u16 cmd,  				const void *request_area, int request_space,  				int reply_headroom) @@ -142,9 +110,6 @@ struct sk_buff *tipc_cfg_do_cmd(struct net *net, u32 orig_node, u16 cmd,  	case TIPC_CMD_NOOP:  		rep_tlv_buf = tipc_cfg_reply_none();  		break; -	case TIPC_CMD_SHOW_STATS: -		rep_tlv_buf = tipc_show_stats(); -		break;  	case TIPC_CMD_NOT_NET_ADMIN:  		rep_tlv_buf =  			tipc_cfg_reply_error_string(TIPC_CFG_NOT_NET_ADMIN); diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c index 415909054ec0..cb9086d259df 100644 --- a/net/tipc/netlink_compat.c +++ b/net/tipc/netlink_compat.c @@ -888,6 +888,18 @@ static int tipc_nl_compat_net_dump(struct tipc_nl_compat_msg *msg,  	return tipc_add_tlv(msg->rep, TIPC_TLV_UNSIGNED, &id, sizeof(id));  } +static int tipc_cmd_show_stats_compat(struct tipc_nl_compat_msg *msg) +{ +	msg->rep = tipc_tlv_alloc(ULTRA_STRING_MAX_LEN); +	if (!msg->rep) +		return -ENOMEM; + +	tipc_tlv_init(msg->rep, TIPC_TLV_ULTRA_STRING); +	tipc_tlv_sprintf(msg->rep, "TIPC version " TIPC_MOD_VER "\n"); + +	return 0; +} +  static int tipc_nl_compat_handle(struct tipc_nl_compat_msg *msg)  {  	struct tipc_nl_compat_cmd_dump dump; @@ -976,6 +988,8 @@ static int tipc_nl_compat_handle(struct tipc_nl_compat_msg *msg)  		dump.dumpit = tipc_nl_net_dump;  		dump.format = tipc_nl_compat_net_dump;  		return tipc_nl_compat_dumpit(&dump, msg); +	case TIPC_CMD_SHOW_STATS: +		return tipc_cmd_show_stats_compat(msg);  	}  	return -EOPNOTSUPP; @@ -1088,6 +1102,7 @@ static int tipc_nl_compat_tmp_wrap(struct sk_buff *skb, struct genl_info *info)  	case TIPC_CMD_SET_NODE_ADDR:  	case TIPC_CMD_SET_NETID:  	case TIPC_CMD_GET_NETID: +	case TIPC_CMD_SHOW_STATS:  		return tipc_nl_compat_recv(skb, info);  	} | 
