diff options
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/group.c | 1 | ||||
-rw-r--r-- | net/tipc/link.c | 1 | ||||
-rw-r--r-- | net/tipc/name_distr.c | 4 |
3 files changed, 4 insertions, 2 deletions
diff --git a/net/tipc/group.c b/net/tipc/group.c index e82f13cb2dc5..06fee142f09f 100644 --- a/net/tipc/group.c +++ b/net/tipc/group.c | |||
@@ -666,6 +666,7 @@ static void tipc_group_create_event(struct tipc_group *grp, | |||
666 | struct sk_buff *skb; | 666 | struct sk_buff *skb; |
667 | struct tipc_msg *hdr; | 667 | struct tipc_msg *hdr; |
668 | 668 | ||
669 | memset(&evt, 0, sizeof(evt)); | ||
669 | evt.event = event; | 670 | evt.event = event; |
670 | evt.found_lower = m->instance; | 671 | evt.found_lower = m->instance; |
671 | evt.found_upper = m->instance; | 672 | evt.found_upper = m->instance; |
diff --git a/net/tipc/link.c b/net/tipc/link.c index f6552e4f4b43..201c3b5bc96b 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -1041,6 +1041,7 @@ static int tipc_link_retrans(struct tipc_link *l, struct tipc_link *r, | |||
1041 | if (r->last_retransm != buf_seqno(skb)) { | 1041 | if (r->last_retransm != buf_seqno(skb)) { |
1042 | r->last_retransm = buf_seqno(skb); | 1042 | r->last_retransm = buf_seqno(skb); |
1043 | r->stale_limit = jiffies + msecs_to_jiffies(r->tolerance); | 1043 | r->stale_limit = jiffies + msecs_to_jiffies(r->tolerance); |
1044 | r->stale_cnt = 0; | ||
1044 | } else if (++r->stale_cnt > 99 && time_after(jiffies, r->stale_limit)) { | 1045 | } else if (++r->stale_cnt > 99 && time_after(jiffies, r->stale_limit)) { |
1045 | link_retransmit_failure(l, skb); | 1046 | link_retransmit_failure(l, skb); |
1046 | if (link_is_bc_sndlink(l)) | 1047 | if (link_is_bc_sndlink(l)) |
diff --git a/net/tipc/name_distr.c b/net/tipc/name_distr.c index 51b4b96f89db..3cfeb9df64b0 100644 --- a/net/tipc/name_distr.c +++ b/net/tipc/name_distr.c | |||
@@ -115,7 +115,7 @@ struct sk_buff *tipc_named_withdraw(struct net *net, struct publication *publ) | |||
115 | struct sk_buff *buf; | 115 | struct sk_buff *buf; |
116 | struct distr_item *item; | 116 | struct distr_item *item; |
117 | 117 | ||
118 | list_del(&publ->binding_node); | 118 | list_del_rcu(&publ->binding_node); |
119 | 119 | ||
120 | if (publ->scope == TIPC_NODE_SCOPE) | 120 | if (publ->scope == TIPC_NODE_SCOPE) |
121 | return NULL; | 121 | return NULL; |
@@ -147,7 +147,7 @@ static void named_distribute(struct net *net, struct sk_buff_head *list, | |||
147 | ITEM_SIZE) * ITEM_SIZE; | 147 | ITEM_SIZE) * ITEM_SIZE; |
148 | u32 msg_rem = msg_dsz; | 148 | u32 msg_rem = msg_dsz; |
149 | 149 | ||
150 | list_for_each_entry(publ, pls, binding_node) { | 150 | list_for_each_entry_rcu(publ, pls, binding_node) { |
151 | /* Prepare next buffer: */ | 151 | /* Prepare next buffer: */ |
152 | if (!skb) { | 152 | if (!skb) { |
153 | skb = named_prepare_buf(net, PUBLICATION, msg_rem, | 153 | skb = named_prepare_buf(net, PUBLICATION, msg_rem, |