diff mbox series

crypto: iaa - Use cpumask_weight() when rebalancing

Message ID afef90304a6985474a9d367efb21423b8c56cc88.camel@linux.intel.com
State Accepted
Commit 8f0e0cf74ccef41b383daddcf5447bba655031b3
Headers show
Series crypto: iaa - Use cpumask_weight() when rebalancing | expand

Commit Message

Zanussi, Tom April 5, 2024, 6:57 p.m. UTC
If some cpus are offlined, or if the node mask is smaller than
expected, the 'nonexistent cpu' warning in rebalance_wq_table() may be
erroneously triggered.

Use cpumask_weight() to make sure we only iterate over the exact
number of cpus in the mask.

Also use num_possible_cpus() instead of num_online_cpus() to make sure
all slots in the wq table are initialized.

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
---
 drivers/crypto/intel/iaa/iaa_crypto_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Herbert Xu April 12, 2024, 7:32 a.m. UTC | #1
On Fri, Apr 05, 2024 at 01:57:30PM -0500, Tom Zanussi wrote:
> If some cpus are offlined, or if the node mask is smaller than
> expected, the 'nonexistent cpu' warning in rebalance_wq_table() may be
> erroneously triggered.
> 
> Use cpumask_weight() to make sure we only iterate over the exact
> number of cpus in the mask.
> 
> Also use num_possible_cpus() instead of num_online_cpus() to make sure
> all slots in the wq table are initialized.
> 
> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
> ---
>  drivers/crypto/intel/iaa/iaa_crypto_main.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Patch applied.  Thanks.
diff mbox series

Patch

diff --git a/drivers/crypto/intel/iaa/iaa_crypto_main.c b/drivers/crypto/intel/iaa/iaa_crypto_main.c
index 6229b24b0d35..814fb2c31626 100644
--- a/drivers/crypto/intel/iaa/iaa_crypto_main.c
+++ b/drivers/crypto/intel/iaa/iaa_crypto_main.c
@@ -922,7 +922,7 @@  static void rebalance_wq_table(void)
 	for_each_node_with_cpus(node) {
 		node_cpus = cpumask_of_node(node);
 
-		for (cpu = 0; cpu < nr_cpus_per_node; cpu++) {
+		for (cpu = 0; cpu <  cpumask_weight(node_cpus); cpu++) {
 			int node_cpu = cpumask_nth(cpu, node_cpus);
 
 			if (WARN_ON(node_cpu >= nr_cpu_ids)) {
@@ -2005,7 +2005,7 @@  static int __init iaa_crypto_init_module(void)
 	int ret = 0;
 	int node;
 
-	nr_cpus = num_online_cpus();
+	nr_cpus = num_possible_cpus();
 	for_each_node_with_cpus(node)
 		nr_nodes++;
 	if (!nr_nodes) {