Re: [PATCH] RDMA/hfi: add a judgment on the availability of cpumask

From: xiaolinkui
Date: Tue Apr 04 2023 - 03:03:35 EST


Thanks for your reply.

When CONFIG_CPUMASK_OFFSTACK=y, "ret" will be false if diff==NULL.

However, when CONFIG_CPUMASK_OFFSTACK=n, these two are not necessarily equivalent.

Thanks

On 4/4/23 14:05, Leon Romanovsky wrote:
On Tue, Apr 04, 2023 at 11:05:25AM +0800, xiaolinkui wrote:
From: Linkui Xiao <xiaolinkui@xxxxxxxxxx>

When CONFIG_CPUMASK_OFFSTACK is n, cpumask may fail to allocate, cpumask may
be NULL, and performing a bitmap operation on cpumask may cause problems at
this time.

Of course, this is a unlikely event.

Signed-off-by: Linkui Xiao <xiaolinkui@xxxxxxxxxx>
---
drivers/infiniband/hw/hfi1/affinity.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c
index 77ee77d4000f..3caa861f4d1d 100644
--- a/drivers/infiniband/hw/hfi1/affinity.c
+++ b/drivers/infiniband/hw/hfi1/affinity.c
@@ -1047,16 +1047,16 @@ int hfi1_get_proc_affinity(int node)
*/
ret = zalloc_cpumask_var(&diff, GFP_KERNEL);
- if (!ret)
+ if (!ret || unlikely(!diff))
Why do you think that check of "ret" is not enough?
"ret" will be false if diff == NULL.

Thanks