Commit 25680c1f authored by Guoqing Jiang's avatar Guoqing Jiang Committed by Leon Romanovsky

RDMA/siw: Add one parameter to siw_destroy_cpulist

With that we can reuse it in siw_init_cpulist.
Acked-by: default avatarBernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: default avatarGuoqing Jiang <guoqing.jiang@linux.dev>
Link: https://lore.kernel.org/r/20231113115726.12762-10-guoqing.jiang@linux.devSigned-off-by: default avatarLeon Romanovsky <leon@kernel.org>
parent 6a343cc3
...@@ -109,6 +109,17 @@ static struct { ...@@ -109,6 +109,17 @@ static struct {
int num_nodes; int num_nodes;
} siw_cpu_info; } siw_cpu_info;
static void siw_destroy_cpulist(int number)
{
int i = 0;
while (i < number)
kfree(siw_cpu_info.tx_valid_cpus[i++]);
kfree(siw_cpu_info.tx_valid_cpus);
siw_cpu_info.tx_valid_cpus = NULL;
}
static int siw_init_cpulist(void) static int siw_init_cpulist(void)
{ {
int i, num_nodes = nr_node_ids; int i, num_nodes = nr_node_ids;
...@@ -138,24 +149,11 @@ static int siw_init_cpulist(void) ...@@ -138,24 +149,11 @@ static int siw_init_cpulist(void)
out_err: out_err:
siw_cpu_info.num_nodes = 0; siw_cpu_info.num_nodes = 0;
while (--i >= 0) siw_destroy_cpulist(i);
kfree(siw_cpu_info.tx_valid_cpus[i]);
kfree(siw_cpu_info.tx_valid_cpus);
siw_cpu_info.tx_valid_cpus = NULL;
return -ENOMEM; return -ENOMEM;
} }
static void siw_destroy_cpulist(void)
{
int i = 0;
while (i < siw_cpu_info.num_nodes)
kfree(siw_cpu_info.tx_valid_cpus[i++]);
kfree(siw_cpu_info.tx_valid_cpus);
}
/* /*
* Choose CPU with least number of active QP's from NUMA node of * Choose CPU with least number of active QP's from NUMA node of
* TX interface. * TX interface.
...@@ -558,7 +556,7 @@ static __init int siw_init_module(void) ...@@ -558,7 +556,7 @@ static __init int siw_init_module(void)
pr_info("SoftIWARP attach failed. Error: %d\n", rv); pr_info("SoftIWARP attach failed. Error: %d\n", rv);
siw_cm_exit(); siw_cm_exit();
siw_destroy_cpulist(); siw_destroy_cpulist(siw_cpu_info.num_nodes);
return rv; return rv;
} }
...@@ -573,7 +571,7 @@ static void __exit siw_exit_module(void) ...@@ -573,7 +571,7 @@ static void __exit siw_exit_module(void)
siw_cm_exit(); siw_cm_exit();
siw_destroy_cpulist(); siw_destroy_cpulist(siw_cpu_info.num_nodes);
if (siw_crypto_shash) if (siw_crypto_shash)
crypto_free_shash(siw_crypto_shash); crypto_free_shash(siw_crypto_shash);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment