bnxt_en: Fix ethtool selftest output in one of the failure cases
authorKalesh AP <kalesh-anakkur.purayil@broadcom.com>
Mon, 28 Apr 2025 22:58:57 +0000 (15:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Apr 2025 12:03:21 +0000 (13:03 +0100)
When RDMA driver is loaded, running offline self test is not
supported and driver returns failure early. But it is not clearing
the input buffer and hence the application prints some junk
characters for individual test results.

Fix it by clearing the buffer before returning.

Fixes: 895621f1c816 ("bnxt_en: Don't support offline self test when RoCE driver is loaded")
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c

index 48dd5922e4dd8bd322e19bdab29c7d27120119e4..7be37976f3e4904780278188dc2c78d1b851bef1 100644 (file)
@@ -4991,6 +4991,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
        if (!bp->num_tests || !BNXT_PF(bp))
                return;
 
+       memset(buf, 0, sizeof(u64) * bp->num_tests);
        if (etest->flags & ETH_TEST_FL_OFFLINE &&
            bnxt_ulp_registered(bp->edev)) {
                etest->flags |= ETH_TEST_FL_FAILED;
@@ -4998,7 +4999,6 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
                return;
        }
 
-       memset(buf, 0, sizeof(u64) * bp->num_tests);
        if (!netif_running(dev)) {
                etest->flags |= ETH_TEST_FL_FAILED;
                return;