On 09.02.21 13:38, Mike Christie wrote: > > +void target_queued_compl_work(struct work_struct *work) > +{ > + struct se_cmd_queue *cq = container_of(work, struct se_cmd_queue, > + work); > + struct se_cmd *se_cmd, *next_cmd; > + struct llist_node *cmd_list; > + > + cmd_list = llist_del_all(&cq->cmd_list); Probably nit-picking: I'd like to reverse the list before processing like you did during submission. > + llist_for_each_entry_safe(se_cmd, next_cmd, cmd_list, se_cmd_list) > + target_complete_cmd_work(se_cmd); > +} > +