diff options
Diffstat (limited to 'drivers/net/sfc/tenxpress.c')
-rw-r--r-- | drivers/net/sfc/tenxpress.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/sfc/tenxpress.c b/drivers/net/sfc/tenxpress.c index 412d209d8313..f0efd246962c 100644 --- a/drivers/net/sfc/tenxpress.c +++ b/drivers/net/sfc/tenxpress.c | |||
@@ -370,8 +370,8 @@ static int tenxpress_special_reset(struct efx_nic *efx) | |||
370 | 370 | ||
371 | /* The XGMAC clock is driven from the SFC7101/SFT9001 312MHz clock, so | 371 | /* The XGMAC clock is driven from the SFC7101/SFT9001 312MHz clock, so |
372 | * a special software reset can glitch the XGMAC sufficiently for stats | 372 | * a special software reset can glitch the XGMAC sufficiently for stats |
373 | * requests to fail. Since we don't often special_reset, just lock. */ | 373 | * requests to fail. */ |
374 | spin_lock(&efx->stats_lock); | 374 | efx_stats_disable(efx); |
375 | 375 | ||
376 | /* Initiate reset */ | 376 | /* Initiate reset */ |
377 | reg = mdio_clause45_read(efx, efx->mii.phy_id, | 377 | reg = mdio_clause45_read(efx, efx->mii.phy_id, |
@@ -386,17 +386,17 @@ static int tenxpress_special_reset(struct efx_nic *efx) | |||
386 | rc = mdio_clause45_wait_reset_mmds(efx, | 386 | rc = mdio_clause45_wait_reset_mmds(efx, |
387 | TENXPRESS_REQUIRED_DEVS); | 387 | TENXPRESS_REQUIRED_DEVS); |
388 | if (rc < 0) | 388 | if (rc < 0) |
389 | goto unlock; | 389 | goto out; |
390 | 390 | ||
391 | /* Try and reconfigure the device */ | 391 | /* Try and reconfigure the device */ |
392 | rc = tenxpress_init(efx); | 392 | rc = tenxpress_init(efx); |
393 | if (rc < 0) | 393 | if (rc < 0) |
394 | goto unlock; | 394 | goto out; |
395 | 395 | ||
396 | /* Wait for the XGXS state machine to churn */ | 396 | /* Wait for the XGXS state machine to churn */ |
397 | mdelay(10); | 397 | mdelay(10); |
398 | unlock: | 398 | out: |
399 | spin_unlock(&efx->stats_lock); | 399 | efx_stats_enable(efx); |
400 | return rc; | 400 | return rc; |
401 | } | 401 | } |
402 | 402 | ||