aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/efx.c
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2010-09-20 04:43:07 -0400
committerDavid S. Miller <davem@davemloft.net>2010-09-21 17:58:00 -0400
commit64eebcfd899a5d2ebe211a593ec13ec24630f1a3 (patch)
treeb147a37d3b4a586464908221b9ea18f80c34ee46 /drivers/net/sfc/efx.c
parenta77f5db361ed9953b5b749353ea2c7fed2bf8d93 (diff)
sfc: Add filter table management
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc/efx.c')
-rw-r--r--drivers/net/sfc/efx.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c
index f702f1fb63b6..4a1c93f165e6 100644
--- a/drivers/net/sfc/efx.c
+++ b/drivers/net/sfc/efx.c
@@ -1357,8 +1357,17 @@ static int efx_probe_all(struct efx_nic *efx)
1357 if (rc) 1357 if (rc)
1358 goto fail3; 1358 goto fail3;
1359 1359
1360 rc = efx_probe_filters(efx);
1361 if (rc) {
1362 netif_err(efx, probe, efx->net_dev,
1363 "failed to create filter tables\n");
1364 goto fail4;
1365 }
1366
1360 return 0; 1367 return 0;
1361 1368
1369 fail4:
1370 efx_remove_channels(efx);
1362 fail3: 1371 fail3:
1363 efx_remove_port(efx); 1372 efx_remove_port(efx);
1364 fail2: 1373 fail2:
@@ -1489,6 +1498,7 @@ static void efx_stop_all(struct efx_nic *efx)
1489 1498
1490static void efx_remove_all(struct efx_nic *efx) 1499static void efx_remove_all(struct efx_nic *efx)
1491{ 1500{
1501 efx_remove_filters(efx);
1492 efx_remove_channels(efx); 1502 efx_remove_channels(efx);
1493 efx_remove_port(efx); 1503 efx_remove_port(efx);
1494 efx_remove_nic(efx); 1504 efx_remove_nic(efx);
@@ -2002,6 +2012,7 @@ int efx_reset_up(struct efx_nic *efx, enum reset_type method, bool ok)
2002 efx->mac_op->reconfigure(efx); 2012 efx->mac_op->reconfigure(efx);
2003 2013
2004 efx_init_channels(efx); 2014 efx_init_channels(efx);
2015 efx_restore_filters(efx);
2005 2016
2006 mutex_unlock(&efx->spi_lock); 2017 mutex_unlock(&efx->spi_lock);
2007 mutex_unlock(&efx->mac_lock); 2018 mutex_unlock(&efx->mac_lock);