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 48dd592..7be3797 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;