diff options
Diffstat (limited to 'net/tipc/bearer.c')
-rw-r--r-- | net/tipc/bearer.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index a22caf9e5a18..2dfb492a7c94 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c | |||
@@ -697,6 +697,9 @@ static int __tipc_nl_add_bearer(struct tipc_nl_msg *msg, | |||
697 | goto prop_msg_full; | 697 | goto prop_msg_full; |
698 | if (nla_put_u32(msg->skb, TIPC_NLA_PROP_WIN, bearer->window)) | 698 | if (nla_put_u32(msg->skb, TIPC_NLA_PROP_WIN, bearer->window)) |
699 | goto prop_msg_full; | 699 | goto prop_msg_full; |
700 | if (bearer->media->type_id == TIPC_MEDIA_TYPE_UDP) | ||
701 | if (nla_put_u32(msg->skb, TIPC_NLA_PROP_MTU, bearer->mtu)) | ||
702 | goto prop_msg_full; | ||
700 | 703 | ||
701 | nla_nest_end(msg->skb, prop); | 704 | nla_nest_end(msg->skb, prop); |
702 | 705 | ||
@@ -979,12 +982,23 @@ int __tipc_nl_bearer_set(struct sk_buff *skb, struct genl_info *info) | |||
979 | 982 | ||
980 | if (props[TIPC_NLA_PROP_TOL]) { | 983 | if (props[TIPC_NLA_PROP_TOL]) { |
981 | b->tolerance = nla_get_u32(props[TIPC_NLA_PROP_TOL]); | 984 | b->tolerance = nla_get_u32(props[TIPC_NLA_PROP_TOL]); |
982 | tipc_node_apply_tolerance(net, b); | 985 | tipc_node_apply_property(net, b, TIPC_NLA_PROP_TOL); |
983 | } | 986 | } |
984 | if (props[TIPC_NLA_PROP_PRIO]) | 987 | if (props[TIPC_NLA_PROP_PRIO]) |
985 | b->priority = nla_get_u32(props[TIPC_NLA_PROP_PRIO]); | 988 | b->priority = nla_get_u32(props[TIPC_NLA_PROP_PRIO]); |
986 | if (props[TIPC_NLA_PROP_WIN]) | 989 | if (props[TIPC_NLA_PROP_WIN]) |
987 | b->window = nla_get_u32(props[TIPC_NLA_PROP_WIN]); | 990 | b->window = nla_get_u32(props[TIPC_NLA_PROP_WIN]); |
991 | if (props[TIPC_NLA_PROP_MTU]) { | ||
992 | if (b->media->type_id != TIPC_MEDIA_TYPE_UDP) | ||
993 | return -EINVAL; | ||
994 | #ifdef CONFIG_TIPC_MEDIA_UDP | ||
995 | if (tipc_udp_mtu_bad(nla_get_u32 | ||
996 | (props[TIPC_NLA_PROP_MTU]))) | ||
997 | return -EINVAL; | ||
998 | b->mtu = nla_get_u32(props[TIPC_NLA_PROP_MTU]); | ||
999 | tipc_node_apply_property(net, b, TIPC_NLA_PROP_MTU); | ||
1000 | #endif | ||
1001 | } | ||
988 | } | 1002 | } |
989 | 1003 | ||
990 | return 0; | 1004 | return 0; |