sfc: limit the number of receive queues
The number of rx queues is determined by the rss_cpus parameter
or the cpu topology. If that is higher than EFX_MAX_RX_QUEUES the
driver can corrupt state.
Fixes: 8ceee660aa
("New driver "sfc" for Solarstorm SFC4000 controller.")
Signed-off-by: Bert Kenward <bkenward@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1bf4b1268e
commit
271a8b428f
|
@ -1371,6 +1371,13 @@ static unsigned int efx_wanted_parallelism(struct efx_nic *efx)
|
|||
free_cpumask_var(thread_mask);
|
||||
}
|
||||
|
||||
if (count > EFX_MAX_RX_QUEUES) {
|
||||
netif_cond_dbg(efx, probe, efx->net_dev, !rss_cpus, warn,
|
||||
"Reducing number of rx queues from %u to %u.\n",
|
||||
count, EFX_MAX_RX_QUEUES);
|
||||
count = EFX_MAX_RX_QUEUES;
|
||||
}
|
||||
|
||||
/* If RSS is requested for the PF *and* VFs then we can't write RSS
|
||||
* table entries that are inaccessible to VFs
|
||||
*/
|
||||
|
|
|
@ -1354,6 +1354,13 @@ static unsigned int ef4_wanted_parallelism(struct ef4_nic *efx)
|
|||
free_cpumask_var(thread_mask);
|
||||
}
|
||||
|
||||
if (count > EF4_MAX_RX_QUEUES) {
|
||||
netif_cond_dbg(efx, probe, efx->net_dev, !rss_cpus, warn,
|
||||
"Reducing number of rx queues from %u to %u.\n",
|
||||
count, EF4_MAX_RX_QUEUES);
|
||||
count = EF4_MAX_RX_QUEUES;
|
||||
}
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue