Skip to content

Commit eb9aa1b

Browse files
committed
Merge branch 'tipc-two-small-cleanups'
Jon Maloy says: ==================== tipc: two small cleanups These two commits are based on commit f9c935d ("tipc: fix problems with multipoint-to-point flow control") which has been applied to 'net' but not yet to 'net-next'. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents a31e795 + d84d1b3 commit eb9aa1b

File tree

1 file changed

+24
-29
lines changed

1 file changed

+24
-29
lines changed

net/tipc/group.c

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ enum mbr_state {
6464
struct tipc_member {
6565
struct rb_node tree_node;
6666
struct list_head list;
67-
struct list_head congested;
67+
struct list_head small_win;
6868
struct sk_buff *event_msg;
6969
struct sk_buff_head deferredq;
7070
struct tipc_group *group;
@@ -82,7 +82,7 @@ struct tipc_member {
8282

8383
struct tipc_group {
8484
struct rb_root members;
85-
struct list_head congested;
85+
struct list_head small_win;
8686
struct list_head pending;
8787
struct list_head active;
8888
struct list_head reclaiming;
@@ -136,12 +136,12 @@ u16 tipc_group_bc_snd_nxt(struct tipc_group *grp)
136136
return grp->bc_snd_nxt;
137137
}
138138

139-
static bool tipc_group_is_enabled(struct tipc_member *m)
139+
static bool tipc_group_is_receiver(struct tipc_member *m)
140140
{
141141
return m->state != MBR_QUARANTINED && m->state != MBR_LEAVING;
142142
}
143143

144-
static bool tipc_group_is_receiver(struct tipc_member *m)
144+
static bool tipc_group_is_sender(struct tipc_member *m)
145145
{
146146
return m && m->state >= MBR_JOINED;
147147
}
@@ -168,7 +168,7 @@ struct tipc_group *tipc_group_create(struct net *net, u32 portid,
168168
if (!grp)
169169
return NULL;
170170
tipc_nlist_init(&grp->dests, tipc_own_addr(net));
171-
INIT_LIST_HEAD(&grp->congested);
171+
INIT_LIST_HEAD(&grp->small_win);
172172
INIT_LIST_HEAD(&grp->active);
173173
INIT_LIST_HEAD(&grp->pending);
174174
INIT_LIST_HEAD(&grp->reclaiming);
@@ -232,7 +232,7 @@ static struct tipc_member *tipc_group_find_dest(struct tipc_group *grp,
232232
struct tipc_member *m;
233233

234234
m = tipc_group_find_member(grp, node, port);
235-
if (m && tipc_group_is_enabled(m))
235+
if (m && tipc_group_is_receiver(m))
236236
return m;
237237
return NULL;
238238
}
@@ -285,7 +285,7 @@ static struct tipc_member *tipc_group_create_member(struct tipc_group *grp,
285285
if (!m)
286286
return NULL;
287287
INIT_LIST_HEAD(&m->list);
288-
INIT_LIST_HEAD(&m->congested);
288+
INIT_LIST_HEAD(&m->small_win);
289289
__skb_queue_head_init(&m->deferredq);
290290
m->group = grp;
291291
m->node = node;
@@ -314,7 +314,7 @@ static void tipc_group_delete_member(struct tipc_group *grp,
314314
grp->bc_ackers--;
315315

316316
list_del_init(&m->list);
317-
list_del_init(&m->congested);
317+
list_del_init(&m->small_win);
318318
tipc_group_decr_active(grp, m);
319319

320320
/* If last member on a node, remove node from dest list */
@@ -343,24 +343,22 @@ void tipc_group_update_member(struct tipc_member *m, int len)
343343
struct tipc_group *grp = m->group;
344344
struct tipc_member *_m, *tmp;
345345

346-
if (!tipc_group_is_enabled(m))
346+
if (!tipc_group_is_receiver(m))
347347
return;
348348

349349
m->window -= len;
350350

351351
if (m->window >= ADV_IDLE)
352352
return;
353353

354-
list_del_init(&m->congested);
354+
list_del_init(&m->small_win);
355355

356-
/* Sort member into congested members' list */
357-
list_for_each_entry_safe(_m, tmp, &grp->congested, congested) {
358-
if (m->window > _m->window)
359-
continue;
360-
list_add_tail(&m->congested, &_m->congested);
361-
return;
356+
/* Sort member into small_window members' list */
357+
list_for_each_entry_safe(_m, tmp, &grp->small_win, small_win) {
358+
if (_m->window > m->window)
359+
break;
362360
}
363-
list_add_tail(&m->congested, &grp->congested);
361+
list_add_tail(&m->small_win, &_m->small_win);
364362
}
365363

366364
void tipc_group_update_bc_members(struct tipc_group *grp, int len, bool ack)
@@ -372,7 +370,7 @@ void tipc_group_update_bc_members(struct tipc_group *grp, int len, bool ack)
372370

373371
for (n = rb_first(&grp->members); n; n = rb_next(n)) {
374372
m = container_of(n, struct tipc_member, tree_node);
375-
if (tipc_group_is_enabled(m)) {
373+
if (tipc_group_is_receiver(m)) {
376374
tipc_group_update_member(m, len);
377375
m->bc_acked = prev;
378376
ackers++;
@@ -427,10 +425,10 @@ bool tipc_group_bc_cong(struct tipc_group *grp, int len)
427425
if (grp->bc_ackers)
428426
return true;
429427

430-
if (list_empty(&grp->congested))
428+
if (list_empty(&grp->small_win))
431429
return false;
432430

433-
m = list_first_entry(&grp->congested, struct tipc_member, congested);
431+
m = list_first_entry(&grp->small_win, struct tipc_member, small_win);
434432
if (m->window >= len)
435433
return false;
436434

@@ -485,7 +483,7 @@ void tipc_group_filter_msg(struct tipc_group *grp, struct sk_buff_head *inputq,
485483
goto drop;
486484

487485
m = tipc_group_find_member(grp, node, port);
488-
if (!tipc_group_is_receiver(m))
486+
if (!tipc_group_is_sender(m))
489487
goto drop;
490488

491489
if (less(msg_grp_bc_seqno(hdr), m->bc_rcv_nxt))
@@ -691,15 +689,15 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
691689
msg_set_grp_bc_seqno(ehdr, m->bc_syncpt);
692690
__skb_queue_tail(inputq, m->event_msg);
693691
}
694-
list_del_init(&m->congested);
692+
list_del_init(&m->small_win);
695693
tipc_group_update_member(m, 0);
696694
return;
697695
case GRP_LEAVE_MSG:
698696
if (!m)
699697
return;
700698
m->bc_syncpt = msg_grp_bc_syncpt(hdr);
701699
list_del_init(&m->list);
702-
list_del_init(&m->congested);
700+
list_del_init(&m->small_win);
703701
*usr_wakeup = true;
704702

705703
/* Wait until WITHDRAW event is received */
@@ -719,7 +717,7 @@ void tipc_group_proto_rcv(struct tipc_group *grp, bool *usr_wakeup,
719717
m->window += msg_adv_win(hdr);
720718
*usr_wakeup = m->usr_pending;
721719
m->usr_pending = false;
722-
list_del_init(&m->congested);
720+
list_del_init(&m->small_win);
723721
return;
724722
case GRP_ACK_MSG:
725723
if (!m)
@@ -837,10 +835,7 @@ void tipc_group_member_evt(struct tipc_group *grp,
837835
m->instance = instance;
838836
TIPC_SKB_CB(skb)->orig_member = m->instance;
839837
tipc_group_proto_xmit(grp, m, GRP_JOIN_MSG, xmitq);
840-
if (m->window < ADV_IDLE)
841-
tipc_group_update_member(m, 0);
842-
else
843-
list_del_init(&m->congested);
838+
tipc_group_update_member(m, 0);
844839
} else if (event == TIPC_WITHDRAWN) {
845840
if (!m)
846841
goto drop;
@@ -873,7 +868,7 @@ void tipc_group_member_evt(struct tipc_group *grp,
873868
__skb_queue_tail(inputq, skb);
874869
}
875870
list_del_init(&m->list);
876-
list_del_init(&m->congested);
871+
list_del_init(&m->small_win);
877872
}
878873
*sk_rcvbuf = tipc_group_rcvbuf_limit(grp);
879874
return;

0 commit comments

Comments
 (0)