On Sat, 16 Sep 2023 14:06:19 +0800, Rex Zhang wrote: > In idxd_cmd_exec(), wait_event_lock_irq() explicitly calls > spin_unlock_irq()/spin_lock_irq(). If the interrupt is on before entering > wait_event_lock_irq(), it will become off status after > wait_event_lock_irq() is called. Later, wait_for_completion() may go to > sleep but irq is disabled. The scenario is warned in might_sleep(). > > Fix it by using spin_lock_irqsave() instead of the primitive spin_lock() > to save the irq status before entering wait_event_lock_irq() and using > spin_unlock_irqrestore() instead of the primitive spin_unlock() to restore > the irq status before entering wait_for_completion(). > > [...] Applied, thanks! [1/1] dmaengine: idxd: use spin_lock_irqsave before wait_event_lock_irq commit: c0409dd3d151f661e7e57b901a81a02565df163c Best regards, -- ~Vinod