Browse Source

net: ethernet: ti: cpts: break cycle once late ts is matched

The late ts queue can contain a bunch of skbs while hi rate testing,
no need to check all of them if timestamp is already matched.

Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Ivan Khoronzhuk 7 years ago
parent
commit
d0c694fc7b
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/net/ethernet/ti/cpts.c

+ 4 - 1
drivers/net/ethernet/ti/cpts.c

@@ -114,7 +114,10 @@ static bool cpts_match_tx_ts(struct cpts *cpts, struct cpts_event *event)
 			dev_consume_skb_any(skb);
 			dev_consume_skb_any(skb);
 			dev_dbg(cpts->dev, "match tx timestamp mtype %u seqid %04x\n",
 			dev_dbg(cpts->dev, "match tx timestamp mtype %u seqid %04x\n",
 				mtype, seqid);
 				mtype, seqid);
-		} else if (time_after(jiffies, skb_cb->tmo)) {
+			break;
+		}
+
+		if (time_after(jiffies, skb_cb->tmo)) {
 			/* timeout any expired skbs over 1s */
 			/* timeout any expired skbs over 1s */
 			dev_dbg(cpts->dev,
 			dev_dbg(cpts->dev,
 				"expiring tx timestamp mtype %u seqid %04x\n",
 				"expiring tx timestamp mtype %u seqid %04x\n",