diff options
Diffstat (limited to 'drivers/net/sfc/falcon.c')
-rw-r--r-- | drivers/net/sfc/falcon.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c index 46db549ce580..b57cc68058c0 100644 --- a/drivers/net/sfc/falcon.c +++ b/drivers/net/sfc/falcon.c | |||
@@ -1129,6 +1129,7 @@ static void falcon_handle_driver_event(struct efx_channel *channel, | |||
1129 | case RX_RECOVERY_EV_DECODE: | 1129 | case RX_RECOVERY_EV_DECODE: |
1130 | EFX_ERR(efx, "channel %d seen DRIVER RX_RESET event. " | 1130 | EFX_ERR(efx, "channel %d seen DRIVER RX_RESET event. " |
1131 | "Resetting.\n", channel->channel); | 1131 | "Resetting.\n", channel->channel); |
1132 | atomic_inc(&efx->rx_reset); | ||
1132 | efx_schedule_reset(efx, | 1133 | efx_schedule_reset(efx, |
1133 | EFX_WORKAROUND_6555(efx) ? | 1134 | EFX_WORKAROUND_6555(efx) ? |
1134 | RESET_TYPE_RX_RECOVERY : | 1135 | RESET_TYPE_RX_RECOVERY : |
@@ -1731,7 +1732,8 @@ void falcon_drain_tx_fifo(struct efx_nic *efx) | |||
1731 | efx_oword_t temp; | 1732 | efx_oword_t temp; |
1732 | int count; | 1733 | int count; |
1733 | 1734 | ||
1734 | if (FALCON_REV(efx) < FALCON_REV_B0) | 1735 | if ((FALCON_REV(efx) < FALCON_REV_B0) || |
1736 | (efx->loopback_mode != LOOPBACK_NONE)) | ||
1735 | return; | 1737 | return; |
1736 | 1738 | ||
1737 | falcon_read(efx, &temp, MAC0_CTRL_REG_KER); | 1739 | falcon_read(efx, &temp, MAC0_CTRL_REG_KER); |
@@ -2091,6 +2093,8 @@ static int falcon_probe_phy(struct efx_nic *efx) | |||
2091 | efx->phy_type); | 2093 | efx->phy_type); |
2092 | return -1; | 2094 | return -1; |
2093 | } | 2095 | } |
2096 | |||
2097 | efx->loopback_modes = LOOPBACKS_10G_INTERNAL | efx->phy_op->loopbacks; | ||
2094 | return 0; | 2098 | return 0; |
2095 | } | 2099 | } |
2096 | 2100 | ||
@@ -2468,14 +2472,12 @@ int falcon_probe_nic(struct efx_nic *efx) | |||
2468 | fail5: | 2472 | fail5: |
2469 | falcon_free_buffer(efx, &efx->irq_status); | 2473 | falcon_free_buffer(efx, &efx->irq_status); |
2470 | fail4: | 2474 | fail4: |
2471 | /* fall-thru */ | ||
2472 | fail3: | 2475 | fail3: |
2473 | if (nic_data->pci_dev2) { | 2476 | if (nic_data->pci_dev2) { |
2474 | pci_dev_put(nic_data->pci_dev2); | 2477 | pci_dev_put(nic_data->pci_dev2); |
2475 | nic_data->pci_dev2 = NULL; | 2478 | nic_data->pci_dev2 = NULL; |
2476 | } | 2479 | } |
2477 | fail2: | 2480 | fail2: |
2478 | /* fall-thru */ | ||
2479 | fail1: | 2481 | fail1: |
2480 | kfree(efx->nic_data); | 2482 | kfree(efx->nic_data); |
2481 | return rc; | 2483 | return rc; |