diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2010-09-20 04:43:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-09-21 17:58:00 -0400 |
commit | 64eebcfd899a5d2ebe211a593ec13ec24630f1a3 (patch) | |
tree | b147a37d3b4a586464908221b9ea18f80c34ee46 /drivers/net/sfc/efx.c | |
parent | a77f5db361ed9953b5b749353ea2c7fed2bf8d93 (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.c | 11 |
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 | ||
1490 | static void efx_remove_all(struct efx_nic *efx) | 1499 | static 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); |