* [PATCH net] sfc: limit the number of receive queues
@ 2017-04-12 16:06 Bert Kenward
2017-04-17 15:01 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Bert Kenward @ 2017-04-12 16:06 UTC (permalink / raw)
To: Dave Miller; +Cc: netdev, Solarflare Linux Maintainers
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: 8ceee660aacb ("New driver "sfc" for Solarstorm SFC4000 controller.")
Signed-off-by: Bert Kenward <bkenward@solarflare.com>
---
drivers/net/ethernet/sfc/efx.c | 7 +++++++
drivers/net/ethernet/sfc/falcon/efx.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/drivers/net/ethernet/sfc/efx.c b/drivers/net/ethernet/sfc/efx.c
index 50d28261b6b9..b9cb697b2818 100644
--- a/drivers/net/ethernet/sfc/efx.c
+++ b/drivers/net/ethernet/sfc/efx.c
@@ -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
*/
diff --git a/drivers/net/ethernet/sfc/falcon/efx.c b/drivers/net/ethernet/sfc/falcon/efx.c
index f5e5cd1659a1..29614da91cbf 100644
--- a/drivers/net/ethernet/sfc/falcon/efx.c
+++ b/drivers/net/ethernet/sfc/falcon/efx.c
@@ -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;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net] sfc: limit the number of receive queues
2017-04-12 16:06 [PATCH net] sfc: limit the number of receive queues Bert Kenward
@ 2017-04-17 15:01 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2017-04-17 15:01 UTC (permalink / raw)
To: bkenward; +Cc: davem, netdev, linux-net-drivers
From: Bert Kenward <bkenward@solarflare.com>
Date: Wed, 12 Apr 2017 17:06:52 +0100
> 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: 8ceee660aacb ("New driver "sfc" for Solarstorm SFC4000 controller.")
> Signed-off-by: Bert Kenward <bkenward@solarflare.com>
Applied, thank you.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-17 15:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-12 16:06 [PATCH net] sfc: limit the number of receive queues Bert Kenward
2017-04-17 15:01 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).