aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_d.h3
-rw-r--r--drivers/infiniband/hw/i40iw/i40iw_uk.c6
2 files changed, 4 insertions, 5 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_d.h b/drivers/infiniband/hw/i40iw/i40iw_d.h
index bd942da91a27..2fac1db0e0a0 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_d.h
+++ b/drivers/infiniband/hw/i40iw/i40iw_d.h
@@ -1557,6 +1557,9 @@ enum i40iw_alignment {
1557#define I40IW_RING_MOVE_TAIL(_ring) \ 1557#define I40IW_RING_MOVE_TAIL(_ring) \
1558 (_ring).tail = ((_ring).tail + 1) % (_ring).size 1558 (_ring).tail = ((_ring).tail + 1) % (_ring).size
1559 1559
1560#define I40IW_RING_MOVE_HEAD_NOCHECK(_ring) \
1561 (_ring).head = ((_ring).head + 1) % (_ring).size
1562
1560#define I40IW_RING_MOVE_TAIL_BY_COUNT(_ring, _count) \ 1563#define I40IW_RING_MOVE_TAIL_BY_COUNT(_ring, _count) \
1561 (_ring).tail = ((_ring).tail + (_count)) % (_ring).size 1564 (_ring).tail = ((_ring).tail + (_count)) % (_ring).size
1562 1565
diff --git a/drivers/infiniband/hw/i40iw/i40iw_uk.c b/drivers/infiniband/hw/i40iw/i40iw_uk.c
index 6b217e6e918f..4d28c3cb03cc 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_uk.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_uk.c
@@ -761,7 +761,6 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq,
761 struct i40iw_ring *pring = NULL; 761 struct i40iw_ring *pring = NULL;
762 u32 wqe_idx, q_type, array_idx = 0; 762 u32 wqe_idx, q_type, array_idx = 0;
763 enum i40iw_status_code ret_code = 0; 763 enum i40iw_status_code ret_code = 0;
764 enum i40iw_status_code ret_code2 = 0;
765 bool move_cq_head = true; 764 bool move_cq_head = true;
766 u8 polarity; 765 u8 polarity;
767 u8 addl_wqes = 0; 766 u8 addl_wqes = 0;
@@ -869,10 +868,7 @@ exit:
869 move_cq_head = false; 868 move_cq_head = false;
870 869
871 if (move_cq_head) { 870 if (move_cq_head) {
872 I40IW_RING_MOVE_HEAD(cq->cq_ring, ret_code2); 871 I40IW_RING_MOVE_HEAD_NOCHECK(cq->cq_ring);
873
874 if (ret_code2 && !ret_code)
875 ret_code = ret_code2;
876 872
877 if (I40IW_RING_GETCURRENT_HEAD(cq->cq_ring) == 0) 873 if (I40IW_RING_GETCURRENT_HEAD(cq->cq_ring) == 0)
878 cq->polarity ^= 1; 874 cq->polarity ^= 1;