Hi Loic, On Wednesday, April 11, 2018 03:30 PM, Loic Poulain wrote: >> /* Move the head of the ring to the next empty descriptor */ >> - ch->head_blk_ctl = ctl->next; >> + ch->head_blk_ctl = ctl_skb->next; >> + >> + /* Commit all previous writes and set descriptors to VALID */ >> + wmb(); > > Is this first memory barrier really needed? from what I understand, we > only need to ensure that the control descriptor is marked valid at the > end of the procedure and we don't really care about the paylod one. > >> + desc_skb->ctrl = ch->ctrl_skb; >> + wmb(); >> + desc_bd->ctrl = ch->ctrl_bd; >> >> /* >> * When connected and trying to send data frame chip can be in sleep > > Otherwise, patch makes sense. This patch has somehow vanished from patchwork. I am running it since I posted it and I can't see it causing any regressions, so I'd like to repost. Given that you seem to be in favor of it, can I have your Reviewed-by? Thanks, Daniel