Commit f542dad2 authored by Michael Chan's avatar Michael Chan Committed by Greg Kroah-Hartman

bnxt_en: Fix ethtool selftest crash under error conditions.

[ Upstream commit d27e2ca1 ]

After ethtool loopback packet tests, we re-open the nic for the next
IRQ test.  If the open fails, we must not proceed with the IRQ test
or we will crash with NULL pointer dereference.  Fix it by checking
the bnxt_open_nic() return code before proceeding.
Reported-by: default avatarSomasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Fixes: 67fea463 ("bnxt_en: Add interrupt test to ethtool -t selftest.")
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent fde68698
...@@ -2600,7 +2600,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest, ...@@ -2600,7 +2600,7 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
bool offline = false; bool offline = false;
u8 test_results = 0; u8 test_results = 0;
u8 test_mask = 0; u8 test_mask = 0;
int rc, i; int rc = 0, i;
if (!bp->num_tests || !BNXT_SINGLE_PF(bp)) if (!bp->num_tests || !BNXT_SINGLE_PF(bp))
return; return;
...@@ -2671,9 +2671,9 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest, ...@@ -2671,9 +2671,9 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
} }
bnxt_hwrm_phy_loopback(bp, false, false); bnxt_hwrm_phy_loopback(bp, false, false);
bnxt_half_close_nic(bp); bnxt_half_close_nic(bp);
bnxt_open_nic(bp, false, true); rc = bnxt_open_nic(bp, false, true);
} }
if (bnxt_test_irq(bp)) { if (rc || bnxt_test_irq(bp)) {
buf[BNXT_IRQ_TEST_IDX] = 1; buf[BNXT_IRQ_TEST_IDX] = 1;
etest->flags |= ETH_TEST_FL_FAILED; etest->flags |= ETH_TEST_FL_FAILED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment