On Sat, Dec 28, 2019 at 11:28:54AM +0800, Yixian Liu wrote: > +void init_flush_work(struct hns_roce_dev *hr_dev, struct hns_roce_qp *hr_qp) > +{ > + struct hns_roce_work *flush_work; > + > + flush_work = kzalloc(sizeof(struct hns_roce_work), GFP_ATOMIC); > + if (!flush_work) > + return; You changed it to only queue once, so why do we need the allocation now? That was the whole point.. And the other patch shouldn't be manipulating being_pushed without some kind of locking Jason