Re: [PATCH 1/3] infiniband: i40iw: Replace GFP_ATOMIC with GFP_KERNEL in i40iw_add_mqh_4

From: Dennis Dalessandro
Date: Wed Apr 11 2018 - 10:53:20 EST


On 4/11/2018 3:32 AM, Jia-Ju Bai wrote:
i40iw_add_mqh_4() is never called in atomic context, because it
calls rtnl_lock() that can sleep.

Despite never getting called from atomic context,
i40iw_add_mqh_4() calls kzalloc() with GFP_ATOMIC,
which does not sleep for allocation.
GFP_ATOMIC is not necessary and can be replaced with GFP_KERNEL,
which can sleep and improve the possibility of sucessful allocation.

Just a general comment. I don't know that this is the greatest idea. I can imagine instances where sleeping is OK as far as how the code is written, but for performance reasons you would rather fail than sleep.

As to whether that is the case here I'll let the i40iw folks comment.

This is found by a static analysis tool named DCNS written by myself.
And I also manually check it.
You should probably post a pointer to your tool.

-Denny