Skip to content

Commit

Permalink
sfc: lower stack usage in efx_ethtool_self_test
Browse files Browse the repository at this point in the history
drivers/net/sfc/ethtool.c: In function ‘efx_ethtool_self_test’:
drivers/net/sfc/ethtool.c:613: warning: the frame size of 1200 bytes
is larger than 1024 bytes

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric Dumazet authored and David S. Miller committed Feb 22, 2011
1 parent fe29ec4 commit 28801f3
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions drivers/net/sfc/ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -569,9 +569,14 @@ static void efx_ethtool_self_test(struct net_device *net_dev,
struct ethtool_test *test, u64 *data)
{
struct efx_nic *efx = netdev_priv(net_dev);
struct efx_self_tests efx_tests;
struct efx_self_tests *efx_tests;
int already_up;
int rc;
int rc = -ENOMEM;

efx_tests = kzalloc(sizeof(*efx_tests), GFP_KERNEL);
if (!efx_tests)
goto fail;


ASSERT_RTNL();
if (efx->state != STATE_RUNNING) {
Expand All @@ -589,13 +594,11 @@ static void efx_ethtool_self_test(struct net_device *net_dev,
if (rc) {
netif_err(efx, drv, efx->net_dev,
"failed opening device.\n");
goto fail2;
goto fail1;
}
}

memset(&efx_tests, 0, sizeof(efx_tests));

rc = efx_selftest(efx, &efx_tests, test->flags);
rc = efx_selftest(efx, efx_tests, test->flags);

if (!already_up)
dev_close(efx->net_dev);
Expand All @@ -604,10 +607,11 @@ static void efx_ethtool_self_test(struct net_device *net_dev,
rc == 0 ? "passed" : "failed",
(test->flags & ETH_TEST_FL_OFFLINE) ? "off" : "on");

fail2:
fail1:
fail1:
/* Fill ethtool results structures */
efx_ethtool_fill_self_tests(efx, &efx_tests, NULL, data);
efx_ethtool_fill_self_tests(efx, efx_tests, NULL, data);
kfree(efx_tests);
fail:
if (rc)
test->flags |= ETH_TEST_FL_FAILED;
}
Expand Down

0 comments on commit 28801f3

Please sign in to comment.