On Thu, Sep 05, 2019 at 08:31:11PM +0800, Weihang Li wrote: > From: Yixian Liu <liuyixian@xxxxxxxxxx> > > Hip08 has the feature flush cqe, which help to flush wqe in workqueue > (sq and rq) when error happened by transmitting producer index with > mailbox to hardware. Flush cqe is emplemented in post send and recv > verbs. However, under NVMe cases, these verbs will be called under > softirq context, and it will lead to following calltrace with > current driver as mailbox used by flush cqe can go to sleep. > > This patch solves this problem by using workqueue to do flush cqe, Unbelievable, almost every bug in this driver is solved by introducing workqueue. You should fix "sleep in flush path" issue and not by adding new workqueue. Thanks