Messages in this thread Patch in this message | | | From | Jia-Ju Bai <> | Subject | [PATCH] block: DAC960: Replace GFP_ATOMIC with GFP_KERNEL in DAC960_DetectController | Date | Fri, 26 Jan 2018 18:25:33 +0800 |
| |
After checking all possible call chains to DAC960_DetectController(), my tool finds that this function is never called in atomic context, namely never in an interrupt handler or holding a spinlock. And DAC960_DetectController() calls pci_enable_device that can sleep, so it indicates that DAC960_DetectController() can call functions which may sleep. Thus GFP_ATOMIC is not necessary, and it can be replaced with GFP_KERNEL.
This is found by a static analysis tool named DCNS written by myself.
Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> --- drivers/block/DAC960.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 442e777..25ee9af 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -2725,7 +2725,7 @@ static void DAC960_DetectCleanup(DAC960_Controller_T *Controller) void __iomem *BaseAddress; int i; - Controller = kzalloc(sizeof(DAC960_Controller_T), GFP_ATOMIC); + Controller = kzalloc(sizeof(DAC960_Controller_T), GFP_KERNEL); if (Controller == NULL) { DAC960_Error("Unable to allocate Controller structure for " "Controller at\n", NULL); -- 1.7.9.5
| |