|
@@ -699,6 +699,9 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
|
|
|
if (!m)
|
|
|
return;
|
|
|
m->bc_syncpt = msg_grp_bc_syncpt(hdr);
|
|
|
+ list_del_init(&m->list);
|
|
|
+ list_del_init(&m->congested);
|
|
|
+ *usr_wakeup = true;
|
|
|
|
|
|
/* Wait until WITHDRAW event is received */
|
|
|
if (m->state != MBR_LEAVING) {
|
|
@@ -710,8 +713,6 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
|
|
|
ehdr = buf_msg(m->event_msg);
|
|
|
msg_set_grp_bc_seqno(ehdr, m->bc_syncpt);
|
|
|
__skb_queue_tail(inputq, m->event_msg);
|
|
|
- *usr_wakeup = true;
|
|
|
- list_del_init(&m->congested);
|
|
|
return;
|
|
|
case GRP_ADV_MSG:
|
|
|
if (!m)
|
|
@@ -863,6 +864,7 @@ void tipc_group_member_evt(struct tipc_group *grp,
|
|
|
msg_set_grp_bc_seqno(hdr, m->bc_rcv_nxt);
|
|
|
__skb_queue_tail(inputq, skb);
|
|
|
}
|
|
|
+ list_del_init(&m->list);
|
|
|
list_del_init(&m->congested);
|
|
|
}
|
|
|
*sk_rcvbuf = tipc_group_rcvbuf_limit(grp);
|