aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r--net/tipc/msg.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c
index 9155496b8a8a..94db39217248 100644
--- a/net/tipc/msg.c
+++ b/net/tipc/msg.c
@@ -289,7 +289,7 @@ bool tipc_msg_bundle(struct sk_buff *bbuf, struct sk_buff *buf, u32 mtu)
289 return false; 289 return false;
290 if (likely(msg_user(bmsg) != MSG_BUNDLER)) 290 if (likely(msg_user(bmsg) != MSG_BUNDLER))
291 return false; 291 return false;
292 if (likely(msg_type(bmsg) != BUNDLE_OPEN)) 292 if (likely(!TIPC_SKB_CB(bbuf)->bundling))
293 return false; 293 return false;
294 if (unlikely(skb_tailroom(bbuf) < (pad + msz))) 294 if (unlikely(skb_tailroom(bbuf) < (pad + msz)))
295 return false; 295 return false;
@@ -336,11 +336,12 @@ bool tipc_msg_make_bundle(struct sk_buff **buf, u32 mtu, u32 dnode)
336 336
337 skb_trim(bbuf, INT_H_SIZE); 337 skb_trim(bbuf, INT_H_SIZE);
338 bmsg = buf_msg(bbuf); 338 bmsg = buf_msg(bbuf);
339 tipc_msg_init(bmsg, MSG_BUNDLER, BUNDLE_OPEN, INT_H_SIZE, dnode); 339 tipc_msg_init(bmsg, MSG_BUNDLER, 0, INT_H_SIZE, dnode);
340 msg_set_seqno(bmsg, msg_seqno(msg)); 340 msg_set_seqno(bmsg, msg_seqno(msg));
341 msg_set_ack(bmsg, msg_ack(msg)); 341 msg_set_ack(bmsg, msg_ack(msg));
342 msg_set_bcast_ack(bmsg, msg_bcast_ack(msg)); 342 msg_set_bcast_ack(bmsg, msg_bcast_ack(msg));
343 bbuf->next = (*buf)->next; 343 bbuf->next = (*buf)->next;
344 TIPC_SKB_CB(bbuf)->bundling = true;
344 tipc_msg_bundle(bbuf, *buf, mtu); 345 tipc_msg_bundle(bbuf, *buf, mtu);
345 *buf = bbuf; 346 *buf = bbuf;
346 return true; 347 return true;