aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-12-22 11:16:31 -0500
committerDavid S. Miller <davem@davemloft.net>2017-12-22 11:16:31 -0500
commitfba961ab29e5ffb055592442808bb0f7962e05da (patch)
tree5180c384b79399c469e0ed88211114e6ab249484 /net/tipc
parent0a80f0c26bf5a131892b91db5318eb67608006d2 (diff)
parentead68f216110170ec729e2c4dec0aad6d38259d7 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Lots of overlapping changes. Also on the net-next side the XDP state management is handled more in the generic layers so undo the 'net' nfp fix which isn't applicable in net-next. Include a necessary change by Jakub Kicinski, with log message: ==================== cls_bpf no longer takes care of offload tracking. Make sure netdevsim performs necessary checks. This fixes a warning caused by TC trying to remove a filter it has not added. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com> ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/group.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/net/tipc/group.c b/net/tipc/group.c
index 95fec2c057d6..7ebbdeb2a90e 100644
--- a/net/tipc/group.c
+++ b/net/tipc/group.c
@@ -351,8 +351,7 @@ void tipc_group_update_member(struct tipc_member *m, int len)
351 if (m->window >= ADV_IDLE) 351 if (m->window >= ADV_IDLE)
352 return; 352 return;
353 353
354 if (!list_empty(&m->congested)) 354 list_del_init(&m->congested);
355 return;
356 355
357 /* Sort member into congested members' list */ 356 /* Sort member into congested members' list */
358 list_for_each_entry_safe(_m, tmp, &grp->congested, congested) { 357 list_for_each_entry_safe(_m, tmp, &grp->congested, congested) {
@@ -648,6 +647,7 @@ static void tipc_group_proto_xmit(struct tipc_group *grp, struct tipc_member *m,
648 } else if (mtyp == GRP_REMIT_MSG) { 647 } else if (mtyp == GRP_REMIT_MSG) {
649 msg_set_grp_remitted(hdr, m->window); 648 msg_set_grp_remitted(hdr, m->window);
650 } 649 }
650 msg_set_dest_droppable(hdr, true);
651 __skb_queue_tail(xmitq, skb); 651 __skb_queue_tail(xmitq, skb);
652} 652}
653 653
@@ -689,15 +689,16 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
689 msg_set_grp_bc_seqno(ehdr, m->bc_syncpt); 689 msg_set_grp_bc_seqno(ehdr, m->bc_syncpt);
690 __skb_queue_tail(inputq, m->event_msg); 690 __skb_queue_tail(inputq, m->event_msg);
691 } 691 }
692 if (m->window < ADV_IDLE) 692 list_del_init(&m->congested);
693 tipc_group_update_member(m, 0); 693 tipc_group_update_member(m, 0);
694 else
695 list_del_init(&m->congested);
696 return; 694 return;
697 case GRP_LEAVE_MSG: 695 case GRP_LEAVE_MSG:
698 if (!m) 696 if (!m)
699 return; 697 return;
700 m->bc_syncpt = msg_grp_bc_syncpt(hdr); 698 m->bc_syncpt = msg_grp_bc_syncpt(hdr);
699 list_del_init(&m->list);
700 list_del_init(&m->congested);
701 *usr_wakeup = true;
701 702
702 /* Wait until WITHDRAW event is received */ 703 /* Wait until WITHDRAW event is received */
703 if (m->state != MBR_LEAVING) { 704 if (m->state != MBR_LEAVING) {
@@ -709,8 +710,6 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
709 ehdr = buf_msg(m->event_msg); 710 ehdr = buf_msg(m->event_msg);
710 msg_set_grp_bc_seqno(ehdr, m->bc_syncpt); 711 msg_set_grp_bc_seqno(ehdr, m->bc_syncpt);
711 __skb_queue_tail(inputq, m->event_msg); 712 __skb_queue_tail(inputq, m->event_msg);
712 *usr_wakeup = true;
713 list_del_init(&m->congested);
714 return; 713 return;
715 case GRP_ADV_MSG: 714 case GRP_ADV_MSG:
716 if (!m) 715 if (!m)
@@ -862,6 +861,7 @@ void tipc_group_member_evt(struct tipc_group *grp,
862 msg_set_grp_bc_seqno(hdr, m->bc_rcv_nxt); 861 msg_set_grp_bc_seqno(hdr, m->bc_rcv_nxt);
863 __skb_queue_tail(inputq, skb); 862 __skb_queue_tail(inputq, skb);
864 } 863 }
864 list_del_init(&m->list);
865 list_del_init(&m->congested); 865 list_del_init(&m->congested);
866 } 866 }
867 *sk_rcvbuf = tipc_group_rcvbuf_limit(grp); 867 *sk_rcvbuf = tipc_group_rcvbuf_limit(grp);