On Thu, Feb 16, 2017 at 12:23:01PM -0700, Jason Gunthorpe wrote: > Use our standard versions from util instead. There doesn't seem > to be anything tricky here, but the inlined versions were like our > wc_wmb() barriers, not the wmb(). > > There appears to be no WC memory in this driver, so despite the comments, > these barriers are also making sure that user DMA data is flushed out. Make > them all wmb() > > Guess at where the missing rmb() should be. > > Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx> > --- > @@ -780,6 +780,8 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, > if (polarity != cq->polarity) > return I40IW_ERR_QUEUE_EMPTY; > > + udma_from_device_barrier(); > + What is the need for the barrier here? > q_type = (u8)RS_64(qword3, I40IW_CQ_SQ); > info->error = (bool)RS_64(qword3, I40IW_CQ_ERROR); > info->push_dropped = (bool)RS_64(qword3, I40IWCQ_PSHDROP); -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html