The driver may sleep under a mutex, and the function call path in file "sys/dev/dpt/dpt_scsi.c" in FreeBSD 11.0 is: dpt_init [line 1246: acquire the mutex] dptallocsgmap [line 1282] bus_dmamap_load(BUS_DMA_WAITOK) [line 323] --> may sleep The possible fix of this bug is to set the last parameter in bus_dmamap_load to "BUS_DMA_NOWAIT". This bug is found by a static analysis tool written by myself, and it is checked by my review of the FreeBSD code. Thanks, Jia-Ju Bai
I have read the manual page of bus_dmamap_load. This call will always return immediately and will not block for any reason. Sorry for my wrong report, please ignore it.