sfc: don't report RX hash keys to ethtool when RSS wasn't enabled
If we failed to set up RSS on EF10 (e.g. because firmware declared
RX_RSS_LIMITED), ethtool --show-nfc $dev rx-flow-hash ... should report
no fields, rather than confusingly reporting what fields we _would_ be
hashing on if RSS was working.
Fixes: dcb4123cbe
("sfc: disable RSS when unsupported")
Signed-off-by: Edward Cree <ecree@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
aa9773be2a
commit
4fdda95893
@ -1323,7 +1323,8 @@ static int efx_ef10_init_nic(struct efx_nic *efx)
|
||||
}
|
||||
|
||||
/* don't fail init if RSS setup doesn't work */
|
||||
efx->type->rx_push_rss_config(efx, false, efx->rx_indir_table);
|
||||
rc = efx->type->rx_push_rss_config(efx, false, efx->rx_indir_table);
|
||||
efx->rss_active = (rc == 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -975,6 +975,8 @@ efx_ethtool_get_rxnfc(struct net_device *net_dev,
|
||||
|
||||
case ETHTOOL_GRXFH: {
|
||||
info->data = 0;
|
||||
if (!efx->rss_active) /* No RSS */
|
||||
return 0;
|
||||
switch (info->flow_type) {
|
||||
case UDP_V4_FLOW:
|
||||
if (efx->rx_hash_udp_4tuple)
|
||||
|
@ -860,6 +860,7 @@ struct vfdi_status;
|
||||
* @rx_hash_key: Toeplitz hash key for RSS
|
||||
* @rx_indir_table: Indirection table for RSS
|
||||
* @rx_scatter: Scatter mode enabled for receives
|
||||
* @rss_active: RSS enabled on hardware
|
||||
* @rx_hash_udp_4tuple: UDP 4-tuple hashing enabled
|
||||
* @int_error_count: Number of internal errors seen recently
|
||||
* @int_error_expire: Time at which error count will be expired
|
||||
@ -998,6 +999,7 @@ struct efx_nic {
|
||||
u8 rx_hash_key[40];
|
||||
u32 rx_indir_table[128];
|
||||
bool rx_scatter;
|
||||
bool rss_active;
|
||||
bool rx_hash_udp_4tuple;
|
||||
|
||||
unsigned int_error_count;
|
||||
|
@ -403,6 +403,7 @@ static int siena_init_nic(struct efx_nic *efx)
|
||||
efx_writeo(efx, &temp, FR_AZ_RX_CFG);
|
||||
|
||||
siena_rx_push_rss_config(efx, false, efx->rx_indir_table);
|
||||
efx->rss_active = true;
|
||||
|
||||
/* Enable event logging */
|
||||
rc = efx_mcdi_log_ctrl(efx, true, false, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user