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