Messages in this thread | | | From | Jia-Ju Bai <> | Subject | [BUG] drivers/scsi/dpt_i2o: a possible sleep-in-atomic bug in adpt_i2o_status_get | Date | Tue, 12 Dec 2017 10:20:25 +0800 |
| |
According to drivers/scsi/dpt_i2o.c, the kernel module may sleep under a spinlock. The function call paths are: adpt_reset (acquire the spinlock) __adpt_reset adpt_hba_reset adpt_i2o_activate_hba adpt_i2o_status_get dma_alloc_coherent(GFP_KERNEL) --> may sleep schedule_timeout_uninterruptible --> may sleep
A possible fixing is to replace "schedule_timeout_uninterruptible" with "mdelay" and replace "GFP_KERNEL" with "GFP_ATOMIC". If this fixing is correct, I can send a patch. This possible bug is found by my static analysis tool (DSAC) and checked by my code review.
Thanks, Jia-Ju Bai
| |