diff options
author | David S. Miller <davem@davemloft.net> | 2017-12-22 11:16:31 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-22 11:16:31 -0500 |
commit | fba961ab29e5ffb055592442808bb0f7962e05da (patch) | |
tree | 5180c384b79399c469e0ed88211114e6ab249484 /net/tipc | |
parent | 0a80f0c26bf5a131892b91db5318eb67608006d2 (diff) | |
parent | ead68f216110170ec729e2c4dec0aad6d38259d7 (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.c | 16 |
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); |