summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/i40iw/i40iw_puda.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-08-17 10:50:48 +0200
committerIngo Molnar <mingo@kernel.org>2017-08-17 10:50:48 +0200
commit2257e268b1154966c5b0141b23695db1043ff39d (patch)
treedae4b032afb9872568cf7921b39d30c79a6c3fee /drivers/infiniband/hw/i40iw/i40iw_puda.c
parent27aac20574110abfd594175a668dc58b23b2b14a (diff)
parentac9a40905a610fb02086a37b11ff4bf046825a88 (diff)
downloadtalos-op-linux-2257e268b1154966c5b0141b23695db1043ff39d.tar.gz
talos-op-linux-2257e268b1154966c5b0141b23695db1043ff39d.zip
Merge branch 'linus' into x86/boot, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/infiniband/hw/i40iw/i40iw_puda.c')
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_puda.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_puda.c b/drivers/infiniband/hw/i40iw/i40iw_puda.c
index db41ab40da9c..71050c5d29a0 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_puda.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_puda.c
@@ -408,6 +408,9 @@ enum i40iw_status_code i40iw_puda_send(struct i40iw_sc_qp *qp,
set_64bit_val(wqe, 0, info->paddr);
set_64bit_val(wqe, 8, LS_64(info->len, I40IWQPSQ_FRAG_LEN));
set_64bit_val(wqe, 16, header[0]);
+
+ /* Ensure all data is written before writing valid bit */
+ wmb();
set_64bit_val(wqe, 24, header[1]);
i40iw_debug_buf(qp->dev, I40IW_DEBUG_PUDA, "PUDA SEND WQE", wqe, 32);
@@ -1411,10 +1414,10 @@ static void i40iw_ieq_handle_exception(struct i40iw_puda_rsrc *ieq,
if (!list_empty(rxlist)) {
tmpbuf = (struct i40iw_puda_buf *)rxlist->next;
- plist = &tmpbuf->list;
while ((struct list_head *)tmpbuf != rxlist) {
if ((int)(buf->seqnum - tmpbuf->seqnum) < 0)
break;
+ plist = &tmpbuf->list;
tmpbuf = (struct i40iw_puda_buf *)plist->next;
}
/* Insert buf before tmpbuf */
OpenPOWER on IntegriCloud