RDMA/siw: Add one parameter to siw_destroy_cpulist
authorGuoqing Jiang <guoqing.jiang@linux.dev>
Mon, 13 Nov 2023 11:57:18 +0000 (19:57 +0800)
committerLeon Romanovsky <leon@kernel.org>
Wed, 15 Nov 2023 13:58:13 +0000 (15:58 +0200)
With that we can reuse it in siw_init_cpulist.

Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
Link: https://lore.kernel.org/r/20231113115726.12762-10-guoqing.jiang@linux.dev
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/sw/siw/siw_main.c

index 1ab62982df74cb4f6a006ac3f9d2ed16c3c217dd..61ad8ca3d1a2a82ab5f3e696ed0388a642fe8376 100644 (file)
@@ -109,6 +109,17 @@ static struct {
        int num_nodes;
 } 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)
 {
        int i, num_nodes = nr_node_ids;
@@ -138,24 +149,11 @@ static int siw_init_cpulist(void)
 
 out_err:
        siw_cpu_info.num_nodes = 0;
-       while (--i >= 0)
-               kfree(siw_cpu_info.tx_valid_cpus[i]);
-       kfree(siw_cpu_info.tx_valid_cpus);
-       siw_cpu_info.tx_valid_cpus = NULL;
+       siw_destroy_cpulist(i);
 
        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
  * TX interface.
@@ -558,7 +556,7 @@ out_error:
        pr_info("SoftIWARP attach failed. Error: %d\n", rv);
 
        siw_cm_exit();
-       siw_destroy_cpulist();
+       siw_destroy_cpulist(siw_cpu_info.num_nodes);
 
        return rv;
 }
@@ -573,7 +571,7 @@ static void __exit siw_exit_module(void)
 
        siw_cm_exit();
 
-       siw_destroy_cpulist();
+       siw_destroy_cpulist(siw_cpu_info.num_nodes);
 
        if (siw_crypto_shash)
                crypto_free_shash(siw_crypto_shash);