Commit 35a36af8 authored by Edward Cree's avatar Edward Cree Committed by David S. Miller
Browse files

sfc_ef100: don't call efx_reset_down()/up() on EF100



We handle everything ourselves in ef100_reset(), rather than relying on
 the generic down/up routines.

Signed-off-by: default avatarEdward Cree <ecree@solarflare.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent aa86a75f
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -814,13 +814,17 @@ fail:
 */
int efx_reset(struct efx_nic *efx, enum reset_type method)
{
	int rc, rc2 = 0;
	bool disabled;
	int rc, rc2;

	netif_info(efx, drv, efx->net_dev, "resetting (%s)\n",
		   RESET_TYPE(method));

	efx_device_detach_sync(efx);
	/* efx_reset_down() grabs locks that prevent recovery on EF100.
	 * EF100 reset is handled in the efx_nic_type callback below.
	 */
	if (efx_nic_rev(efx) != EFX_REV_EF100)
		efx_reset_down(efx, method);

	rc = efx->type->reset(efx, method);
@@ -849,6 +853,7 @@ out:
	disabled = rc ||
		method == RESET_TYPE_DISABLE ||
		method == RESET_TYPE_RECOVER_OR_DISABLE;
	if (efx_nic_rev(efx) != EFX_REV_EF100)
		rc2 = efx_reset_up(efx, method, !disabled);
	if (rc2) {
		disabled = true;