]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - net/tipc/link.c
tipc: simplify stale link failure criteria
[thirdparty/linux.git] / net / tipc / link.c
index bcfb0a4ab4856db64f73d276d419f72d454ef8c5..af50b53e75d91b5000863543e62aec8b9df663e7 100644 (file)
@@ -107,7 +107,6 @@ struct tipc_stats {
  * @backlogq: queue for messages waiting to be sent
  * @snt_nxt: next sequence number to use for outbound messages
  * @prev_from: sequence number of most previous retransmission request
- * @stale_cnt: counter for number of identical retransmit attempts
  * @stale_limit: time when repeated identical retransmits must force link reset
  * @ackers: # of peers that needs to ack each packet before it can be released
  * @acked: # last packet acked by a certain peer. Used for broadcast.
@@ -167,7 +166,6 @@ struct tipc_link {
        u16 snd_nxt;
        u16 prev_from;
        u16 window;
-       u16 stale_cnt;
        unsigned long stale_limit;
 
        /* Reception */
@@ -910,7 +908,6 @@ void tipc_link_reset(struct tipc_link *l)
        l->acked = 0;
        l->silent_intv_cnt = 0;
        l->rst_cnt = 0;
-       l->stale_cnt = 0;
        l->bc_peer_is_up = false;
        memset(&l->mon_state, 0, sizeof(l->mon_state));
        tipc_link_reset_stats(l);
@@ -1068,8 +1065,7 @@ static bool link_retransmit_failure(struct tipc_link *l, struct tipc_link *r,
        if (r->prev_from != from) {
                r->prev_from = from;
                r->stale_limit = jiffies + msecs_to_jiffies(r->tolerance);
-               r->stale_cnt = 0;
-       } else if (++r->stale_cnt > 99 && time_after(jiffies, r->stale_limit)) {
+       } else if (time_after(jiffies, r->stale_limit)) {
                pr_warn("Retransmission failure on link <%s>\n", l->name);
                link_print(l, "State of link ");
                pr_info("Failed msg: usr %u, typ %u, len %u, err %u\n",
@@ -1515,7 +1511,6 @@ int tipc_link_rcv(struct tipc_link *l, struct sk_buff *skb,
 
                /* Forward queues and wake up waiting users */
                if (likely(tipc_link_release_pkts(l, msg_ack(hdr)))) {
-                       l->stale_cnt = 0;
                        tipc_link_advance_backlog(l, xmitq);
                        if (unlikely(!skb_queue_empty(&l->wakeupq)))
                                link_prepare_wakeup(l);
@@ -2584,7 +2579,7 @@ int tipc_link_dump(struct tipc_link *l, u16 dqueues, char *buf)
        i += scnprintf(buf + i, sz - i, " %u", l->silent_intv_cnt);
        i += scnprintf(buf + i, sz - i, " %u", l->rst_cnt);
        i += scnprintf(buf + i, sz - i, " %u", l->prev_from);
-       i += scnprintf(buf + i, sz - i, " %u", l->stale_cnt);
+       i += scnprintf(buf + i, sz - i, " %u", 0);
        i += scnprintf(buf + i, sz - i, " %u", l->acked);
 
        list = &l->transmq;