The driver may sleep under a mutex, and the function call path is: mlx_attach [line 432: acquire the mutex] mlx_enquire mlx_alloccmd bus_dmamap_create(BUS_DMA_WAITOK) --> may sleep The possible fix of this bug is to replace the "BUS_DMA_WAITOK" in bus_dmamap_create with "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.