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

Message ID 20180710130404.3437-1-ivan.khoronzhuk@linaro.org
State Accepted
Commit d0c694fc7b01a500741d4085d26ed78df5aa6c7a
Headers show
Series
  • net: ethernet: ti: cpts: break cycle once late ts is matched
Related show

Commit Message

Ivan Khoronzhuk July 10, 2018, 1:04 p.m.
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>

---

Based on net-next/master

 drivers/net/ethernet/ti/cpts.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.17.1

Comments

David Miller July 12, 2018, 7 a.m. | #1
From: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>

Date: Tue, 10 Jul 2018 16:04:04 +0300

> 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>

> ---

> 

> Based on net-next/master


Applied.

Patch

diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c
index 6f63c8729afc..b4ea58dc8caf 100644
--- a/drivers/net/ethernet/ti/cpts.c
+++ b/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_dbg(cpts->dev, "match tx timestamp mtype %u seqid %04x\n",
 				mtype, seqid);
-		} else if (time_after(jiffies, skb_cb->tmo)) {
+			break;
+		}
+
+		if (time_after(jiffies, skb_cb->tmo)) {
 			/* timeout any expired skbs over 1s */
 			dev_dbg(cpts->dev,
 				"expiring tx timestamp mtype %u seqid %04x\n",