Hi Dan, I think you have a bug in this function, the list_splice_init adds the new slots in the head of the chain_node, but you get the old_chain_tail (latest descriptor) from the tail of the chain!! > +static dma_cookie_t > +iop_adma_tx_submit(struct dma_async_tx_descriptor *tx) > +{ > + > + old_chain_tail = list_entry(iop_chan->chain.prev, > + struct iop_adma_desc_slot, chain_node); > + list_splice_init(&sw_desc->group_list, &old_chain_tail->chain_node); > + > + /* fix up the hardware chain */ > + iop_desc_set_next_desc(old_chain_tail, grp_start->phys); > + - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html