diff options
author | David S. Miller <davem@davemloft.net> | 2015-10-24 09:54:12 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-10-24 09:54:12 -0400 |
commit | ba3e2084f268bdfed7627046e58a2218037e15af (patch) | |
tree | 36b99da43ee72f81b31f0627dbfc69f50c97378f /net/tipc | |
parent | a72c9512bf2bef12c5e66a4d910c4b348fe31d61 (diff) | |
parent | ce9d9b8e5c2b7486edf76958bcdb5e6534a915b0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/ipv6/xfrm6_output.c
net/openvswitch/flow_netlink.c
net/openvswitch/vport-gre.c
net/openvswitch/vport-vxlan.c
net/openvswitch/vport.c
net/openvswitch/vport.h
The openvswitch conflicts were overlapping changes. One was
the egress tunnel info fix in 'net' and the other was the
vport ->send() op simplification in 'net-next'.
The xfrm6_output.c conflicts was also a simplification
overlapping a bug fix.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/bcast.c | 8 | ||||
-rw-r--r-- | net/tipc/msg.c | 12 | ||||
-rw-r--r-- | net/tipc/udp_media.c | 5 |
3 files changed, 19 insertions, 6 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index 41042de3ae9b..eadba62afa85 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c | |||
@@ -42,7 +42,8 @@ | |||
42 | #include "core.h" | 42 | #include "core.h" |
43 | 43 | ||
44 | #define MAX_PKT_DEFAULT_MCAST 1500 /* bcast link max packet size (fixed) */ | 44 | #define MAX_PKT_DEFAULT_MCAST 1500 /* bcast link max packet size (fixed) */ |
45 | #define BCLINK_WIN_DEFAULT 20 /* bcast link window size (default) */ | 45 | #define BCLINK_WIN_DEFAULT 50 /* bcast link window size (default) */ |
46 | #define BCLINK_WIN_MIN 32 /* bcast minimum link window size */ | ||
46 | 47 | ||
47 | const char tipc_bclink_name[] = "broadcast-link"; | 48 | const char tipc_bclink_name[] = "broadcast-link"; |
48 | 49 | ||
@@ -908,9 +909,10 @@ int tipc_bclink_set_queue_limits(struct net *net, u32 limit) | |||
908 | 909 | ||
909 | if (!bcl) | 910 | if (!bcl) |
910 | return -ENOPROTOOPT; | 911 | return -ENOPROTOOPT; |
911 | if ((limit < TIPC_MIN_LINK_WIN) || (limit > TIPC_MAX_LINK_WIN)) | 912 | if (limit < BCLINK_WIN_MIN) |
913 | limit = BCLINK_WIN_MIN; | ||
914 | if (limit > TIPC_MAX_LINK_WIN) | ||
912 | return -EINVAL; | 915 | return -EINVAL; |
913 | |||
914 | tipc_bclink_lock(net); | 916 | tipc_bclink_lock(net); |
915 | tipc_link_set_queue_limits(bcl, limit); | 917 | tipc_link_set_queue_limits(bcl, limit); |
916 | tipc_bclink_unlock(net); | 918 | tipc_bclink_unlock(net); |
diff --git a/net/tipc/msg.c b/net/tipc/msg.c index 454f5ec275c8..26d38b3d8760 100644 --- a/net/tipc/msg.c +++ b/net/tipc/msg.c | |||
@@ -121,7 +121,7 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) | |||
121 | { | 121 | { |
122 | struct sk_buff *head = *headbuf; | 122 | struct sk_buff *head = *headbuf; |
123 | struct sk_buff *frag = *buf; | 123 | struct sk_buff *frag = *buf; |
124 | struct sk_buff *tail; | 124 | struct sk_buff *tail = NULL; |
125 | struct tipc_msg *msg; | 125 | struct tipc_msg *msg; |
126 | u32 fragid; | 126 | u32 fragid; |
127 | int delta; | 127 | int delta; |
@@ -141,9 +141,15 @@ int tipc_buf_append(struct sk_buff **headbuf, struct sk_buff **buf) | |||
141 | if (unlikely(skb_unclone(frag, GFP_ATOMIC))) | 141 | if (unlikely(skb_unclone(frag, GFP_ATOMIC))) |
142 | goto err; | 142 | goto err; |
143 | head = *headbuf = frag; | 143 | head = *headbuf = frag; |
144 | skb_frag_list_init(head); | ||
145 | TIPC_SKB_CB(head)->tail = NULL; | ||
146 | *buf = NULL; | 144 | *buf = NULL; |
145 | TIPC_SKB_CB(head)->tail = NULL; | ||
146 | if (skb_is_nonlinear(head)) { | ||
147 | skb_walk_frags(head, tail) { | ||
148 | TIPC_SKB_CB(head)->tail = tail; | ||
149 | } | ||
150 | } else { | ||
151 | skb_frag_list_init(head); | ||
152 | } | ||
147 | return 0; | 153 | return 0; |
148 | } | 154 | } |
149 | 155 | ||
diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index 9bc0b1e515fa..0021c01dec17 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c | |||
@@ -52,6 +52,8 @@ | |||
52 | /* IANA assigned UDP port */ | 52 | /* IANA assigned UDP port */ |
53 | #define UDP_PORT_DEFAULT 6118 | 53 | #define UDP_PORT_DEFAULT 6118 |
54 | 54 | ||
55 | #define UDP_MIN_HEADROOM 28 | ||
56 | |||
55 | static const struct nla_policy tipc_nl_udp_policy[TIPC_NLA_UDP_MAX + 1] = { | 57 | static const struct nla_policy tipc_nl_udp_policy[TIPC_NLA_UDP_MAX + 1] = { |
56 | [TIPC_NLA_UDP_UNSPEC] = {.type = NLA_UNSPEC}, | 58 | [TIPC_NLA_UDP_UNSPEC] = {.type = NLA_UNSPEC}, |
57 | [TIPC_NLA_UDP_LOCAL] = {.type = NLA_BINARY, | 59 | [TIPC_NLA_UDP_LOCAL] = {.type = NLA_BINARY, |
@@ -156,6 +158,9 @@ static int tipc_udp_send_msg(struct net *net, struct sk_buff *skb, | |||
156 | struct sk_buff *clone; | 158 | struct sk_buff *clone; |
157 | struct rtable *rt; | 159 | struct rtable *rt; |
158 | 160 | ||
161 | if (skb_headroom(skb) < UDP_MIN_HEADROOM) | ||
162 | pskb_expand_head(skb, UDP_MIN_HEADROOM, 0, GFP_ATOMIC); | ||
163 | |||
159 | clone = skb_clone(skb, GFP_ATOMIC); | 164 | clone = skb_clone(skb, GFP_ATOMIC); |
160 | skb_set_inner_protocol(clone, htons(ETH_P_TIPC)); | 165 | skb_set_inner_protocol(clone, htons(ETH_P_TIPC)); |
161 | ub = rcu_dereference_rtnl(b->media_ptr); | 166 | ub = rcu_dereference_rtnl(b->media_ptr); |