git: 113c730edcca - stable/12 - ena: Re-Enable per-packet missing tx completion print

From: Marcin Wojtas <mw_at_FreeBSD.org>
Date: Tue, 31 Jan 2023 13:18:07 UTC
The branch stable/12 has been updated by mw:

URL: https://cgit.FreeBSD.org/src/commit/?id=113c730edcca8244bd14e6c23916dcdfda5da944

commit 113c730edcca8244bd14e6c23916dcdfda5da944
Author:     Arthur Kiyanovski <akiyano@amazon.com>
AuthorDate: 2022-12-19 13:56:44 +0000
Commit:     Marcin Wojtas <mw@FreeBSD.org>
CommitDate: 2023-01-31 12:46:50 +0000

    ena: Re-Enable per-packet missing tx completion print
    
    Commit [1] first added the ena_tx_buffer.print_once member,
    so that a message about a missing tx completion is printed only
    once per packet (and not every second when the watchdog runs).
    In this commit print_once is initialized to true, and is set back
    to false after detecting a missing tx completion and printing
    a warning about it to dmesg.
    
    Commit [2] incorrectly reverses the values assigned to print_once.
    The variable is initialized to be true but is checked to be false
    when a missing tx completion is detected. This is never true, and
    therefore the warning print for each missing tx completion is never
    printed since this commit.
    
    Commit [3] added time passed since last TX cleanup to the missing
    tx completions per-packet print. However, due to the issue in commit
    [2], this time is never printed.
    
    This commit reverses back the values assigned to ena_tx_buffer.print_once
    erroneously by commit [2], bringing back to life the missing tx
    completion per-packet print.
    
    Also add a space after "." in the missing tx completion print.
    
    [1] - 9b8d05b8ac78 ("Add support for Amazon Elastic Network Adapter (ENA) NIC")
    [2] - 74dba3ad7851 ("Split function checking for missing TX completion in ENA driver")
    [3] - d8aba82b5ca7 ("ena: Store ticks of last Tx cleanup")
    
    Fixes: 74dba3ad7851 ("Split function checking for missing TX completion in ENA driver")
    Fixes: d8aba82b5ca7 ("ena: Store ticks of last Tx cleanup")
    MFC after: 2 weeks
    Sponsored by: Amazon, Inc.
    
    (cherry picked from commit f01b2cd98e93ef5ac3698b97bbaa45ac9c50fe5d)
---
 sys/dev/ena/ena.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c
index a93e55e36bde..fe9c411f125a 100644
--- a/sys/dev/ena/ena.c
+++ b/sys/dev/ena/ena.c
@@ -3023,19 +3023,19 @@ check_missing_comp_in_tx_queue(struct ena_adapter *adapter,
 		/* Check again if packet is still waiting */
 		if (unlikely(time_offset > adapter->missing_tx_timeout)) {
 
-			if (!tx_buf->print_once) {
+			if (tx_buf->print_once) {
 				time_since_last_cleanup = TICKS_2_USEC(ticks -
 				    tx_ring->tx_last_cleanup_ticks);
 				missing_tx_comp_to = sbttoms(
 				    adapter->missing_tx_timeout);
 				ena_log(pdev, WARN,
-				    "Found a Tx that wasn't completed on time, qid %d, index %d."
+				    "Found a Tx that wasn't completed on time, qid %d, index %d. "
 				    "%d usecs have passed since last cleanup. Missing Tx timeout value %d msecs.\n",
 				    tx_ring->qid, i, time_since_last_cleanup,
 				    missing_tx_comp_to);
 			}
 
-			tx_buf->print_once = true;
+			tx_buf->print_once = false;
 			missed_tx++;
 		}
 	}