summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/sfc/mcdi_filters.c
diff options
context:
space:
mode:
authorEdward Cree <ecree@solarflare.com>2020-07-02 19:34:43 +0300
committerDavid S. Miller <davem@davemloft.net>2020-07-03 00:47:40 +0300
commitb6d02dd2ffd4ac9b08a963762eb3d1ee0502ffc6 (patch)
tree55f4296d2a760006e081db1a03e4812cbcfdb86a /drivers/net/ethernet/sfc/mcdi_filters.c
parentb3007dfd5b059cc873a8b4c24a1e337cdcec9011 (diff)
downloadlinux-b6d02dd2ffd4ac9b08a963762eb3d1ee0502ffc6.tar.xz
sfc_ef100: helper function to set default RSS table of given size
Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sfc/mcdi_filters.c')
-rw-r--r--drivers/net/ethernet/sfc/mcdi_filters.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/net/ethernet/sfc/mcdi_filters.c b/drivers/net/ethernet/sfc/mcdi_filters.c
index 283f68264b66..5a74d880b733 100644
--- a/drivers/net/ethernet/sfc/mcdi_filters.c
+++ b/drivers/net/ethernet/sfc/mcdi_filters.c
@@ -2276,3 +2276,24 @@ int efx_mcdi_vf_rx_push_rss_config(struct efx_nic *efx, bool user,
return 0;
return efx_mcdi_filter_rx_push_shared_rss_config(efx, NULL);
}
+
+int efx_mcdi_push_default_indir_table(struct efx_nic *efx,
+ unsigned int rss_spread)
+{
+ int rc = 0;
+
+ if (efx->rss_spread == rss_spread)
+ return 0;
+
+ efx->rss_spread = rss_spread;
+ if (!efx->filter_state)
+ return 0;
+
+ efx_mcdi_rx_free_indir_table(efx);
+ if (rss_spread > 1) {
+ efx_set_default_rx_indir_table(efx, &efx->rss_context);
+ rc = efx->type->rx_push_rss_config(efx, false,
+ efx->rss_context.rx_indir_table, NULL);
+ }
+ return rc;
+}