Loading drivers/infiniband/hw/i40iw/i40iw_cm.c +2 −2 Original line number Diff line number Diff line Loading @@ -1567,12 +1567,12 @@ static enum i40iw_status_code i40iw_del_multiple_qhash( ret = i40iw_manage_qhash(iwdev, cm_info, I40IW_QHASH_TYPE_TCP_SYN, I40IW_QHASH_MANAGE_TYPE_DELETE, NULL, false); kfree(child_listen_node); cm_parent_listen_node->cm_core->stats_listen_nodes_destroyed++; i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_CM, "freed pointer = %p\n", child_listen_node); kfree(child_listen_node); cm_parent_listen_node->cm_core->stats_listen_nodes_destroyed++; } spin_unlock_irqrestore(&iwdev->cm_core.listen_list_lock, flags); Loading drivers/infiniband/hw/i40iw/i40iw_d.h +3 −0 Original line number Diff line number Diff line Loading @@ -1557,6 +1557,9 @@ enum i40iw_alignment { #define I40IW_RING_MOVE_TAIL(_ring) \ (_ring).tail = ((_ring).tail + 1) % (_ring).size #define I40IW_RING_MOVE_HEAD_NOCHECK(_ring) \ (_ring).head = ((_ring).head + 1) % (_ring).size #define I40IW_RING_MOVE_TAIL_BY_COUNT(_ring, _count) \ (_ring).tail = ((_ring).tail + (_count)) % (_ring).size Loading drivers/infiniband/hw/i40iw/i40iw_puda.c +4 −0 Original line number Diff line number Diff line Loading @@ -1025,6 +1025,8 @@ static void i40iw_ieq_compl_pfpdu(struct i40iw_puda_rsrc *ieq, u16 txoffset, bufoffset; buf = i40iw_puda_get_listbuf(pbufl); if (!buf) return; nextseqnum = buf->seqnum + fpdu_len; txbuf->totallen = buf->hdrlen + fpdu_len; txbuf->data = (u8 *)txbuf->mem.va + buf->hdrlen; Loading @@ -1048,6 +1050,8 @@ static void i40iw_ieq_compl_pfpdu(struct i40iw_puda_rsrc *ieq, fpdu_len -= buf->datalen; i40iw_puda_ret_bufpool(ieq, buf); buf = i40iw_puda_get_listbuf(pbufl); if (!buf) return; bufoffset = (u16)(buf->data - (u8 *)buf->mem.va); } while (1); Loading drivers/infiniband/hw/i40iw/i40iw_type.h +1 −1 Original line number Diff line number Diff line Loading @@ -667,7 +667,7 @@ struct i40iw_tcp_offload_info { bool time_stamp; u8 cwnd_inc_limit; bool drop_ooo_seg; bool dup_ack_thresh; u8 dup_ack_thresh; u8 ttl; u8 src_mac_addr_idx; bool avoid_stretch_ack; Loading drivers/infiniband/hw/i40iw/i40iw_uk.c +11 −18 Original line number Diff line number Diff line Loading @@ -291,9 +291,9 @@ static enum i40iw_status_code i40iw_rdma_write(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, op_info->lo_sg_list); for (i = 1; i < op_info->num_lo_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < op_info->num_lo_sges; i++) { i40iw_set_fragment(wqe, byte_off, &op_info->lo_sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -401,9 +401,9 @@ static enum i40iw_status_code i40iw_send(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, op_info->sg_list); for (i = 1; i < op_info->num_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < op_info->num_sges; i++) { i40iw_set_fragment(wqe, byte_off, &op_info->sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -685,9 +685,9 @@ static enum i40iw_status_code i40iw_post_receive(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, info->sg_list); for (i = 1; i < info->num_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < info->num_sges; i++) { i40iw_set_fragment(wqe, byte_off, &info->sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -753,8 +753,7 @@ static enum i40iw_status_code i40iw_cq_post_entries(struct i40iw_cq_uk *cq, * @post_cq: update cq tail */ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, struct i40iw_cq_poll_info *info, bool post_cq) struct i40iw_cq_poll_info *info) { u64 comp_ctx, qword0, qword2, qword3, wqe_qword; u64 *cqe, *sw_wqe; Loading @@ -762,7 +761,6 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, struct i40iw_ring *pring = NULL; u32 wqe_idx, q_type, array_idx = 0; enum i40iw_status_code ret_code = 0; enum i40iw_status_code ret_code2 = 0; bool move_cq_head = true; u8 polarity; u8 addl_wqes = 0; Loading Loading @@ -870,19 +868,14 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, move_cq_head = false; if (move_cq_head) { I40IW_RING_MOVE_HEAD(cq->cq_ring, ret_code2); if (ret_code2 && !ret_code) ret_code = ret_code2; I40IW_RING_MOVE_HEAD_NOCHECK(cq->cq_ring); if (I40IW_RING_GETCURRENT_HEAD(cq->cq_ring) == 0) cq->polarity ^= 1; if (post_cq) { I40IW_RING_MOVE_TAIL(cq->cq_ring); set_64bit_val(cq->shadow_area, 0, I40IW_RING_GETCURRENT_HEAD(cq->cq_ring)); } } else { if (info->is_srq) return ret_code; Loading Loading
drivers/infiniband/hw/i40iw/i40iw_cm.c +2 −2 Original line number Diff line number Diff line Loading @@ -1567,12 +1567,12 @@ static enum i40iw_status_code i40iw_del_multiple_qhash( ret = i40iw_manage_qhash(iwdev, cm_info, I40IW_QHASH_TYPE_TCP_SYN, I40IW_QHASH_MANAGE_TYPE_DELETE, NULL, false); kfree(child_listen_node); cm_parent_listen_node->cm_core->stats_listen_nodes_destroyed++; i40iw_debug(&iwdev->sc_dev, I40IW_DEBUG_CM, "freed pointer = %p\n", child_listen_node); kfree(child_listen_node); cm_parent_listen_node->cm_core->stats_listen_nodes_destroyed++; } spin_unlock_irqrestore(&iwdev->cm_core.listen_list_lock, flags); Loading
drivers/infiniband/hw/i40iw/i40iw_d.h +3 −0 Original line number Diff line number Diff line Loading @@ -1557,6 +1557,9 @@ enum i40iw_alignment { #define I40IW_RING_MOVE_TAIL(_ring) \ (_ring).tail = ((_ring).tail + 1) % (_ring).size #define I40IW_RING_MOVE_HEAD_NOCHECK(_ring) \ (_ring).head = ((_ring).head + 1) % (_ring).size #define I40IW_RING_MOVE_TAIL_BY_COUNT(_ring, _count) \ (_ring).tail = ((_ring).tail + (_count)) % (_ring).size Loading
drivers/infiniband/hw/i40iw/i40iw_puda.c +4 −0 Original line number Diff line number Diff line Loading @@ -1025,6 +1025,8 @@ static void i40iw_ieq_compl_pfpdu(struct i40iw_puda_rsrc *ieq, u16 txoffset, bufoffset; buf = i40iw_puda_get_listbuf(pbufl); if (!buf) return; nextseqnum = buf->seqnum + fpdu_len; txbuf->totallen = buf->hdrlen + fpdu_len; txbuf->data = (u8 *)txbuf->mem.va + buf->hdrlen; Loading @@ -1048,6 +1050,8 @@ static void i40iw_ieq_compl_pfpdu(struct i40iw_puda_rsrc *ieq, fpdu_len -= buf->datalen; i40iw_puda_ret_bufpool(ieq, buf); buf = i40iw_puda_get_listbuf(pbufl); if (!buf) return; bufoffset = (u16)(buf->data - (u8 *)buf->mem.va); } while (1); Loading
drivers/infiniband/hw/i40iw/i40iw_type.h +1 −1 Original line number Diff line number Diff line Loading @@ -667,7 +667,7 @@ struct i40iw_tcp_offload_info { bool time_stamp; u8 cwnd_inc_limit; bool drop_ooo_seg; bool dup_ack_thresh; u8 dup_ack_thresh; u8 ttl; u8 src_mac_addr_idx; bool avoid_stretch_ack; Loading
drivers/infiniband/hw/i40iw/i40iw_uk.c +11 −18 Original line number Diff line number Diff line Loading @@ -291,9 +291,9 @@ static enum i40iw_status_code i40iw_rdma_write(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, op_info->lo_sg_list); for (i = 1; i < op_info->num_lo_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < op_info->num_lo_sges; i++) { i40iw_set_fragment(wqe, byte_off, &op_info->lo_sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -401,9 +401,9 @@ static enum i40iw_status_code i40iw_send(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, op_info->sg_list); for (i = 1; i < op_info->num_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < op_info->num_sges; i++) { i40iw_set_fragment(wqe, byte_off, &op_info->sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -685,9 +685,9 @@ static enum i40iw_status_code i40iw_post_receive(struct i40iw_qp_uk *qp, i40iw_set_fragment(wqe, 0, info->sg_list); for (i = 1; i < info->num_sges; i++) { byte_off = 32 + (i - 1) * 16; for (i = 1, byte_off = 32; i < info->num_sges; i++) { i40iw_set_fragment(wqe, byte_off, &info->sg_list[i]); byte_off += 16; } wmb(); /* make sure WQE is populated before valid bit is set */ Loading Loading @@ -753,8 +753,7 @@ static enum i40iw_status_code i40iw_cq_post_entries(struct i40iw_cq_uk *cq, * @post_cq: update cq tail */ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, struct i40iw_cq_poll_info *info, bool post_cq) struct i40iw_cq_poll_info *info) { u64 comp_ctx, qword0, qword2, qword3, wqe_qword; u64 *cqe, *sw_wqe; Loading @@ -762,7 +761,6 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, struct i40iw_ring *pring = NULL; u32 wqe_idx, q_type, array_idx = 0; enum i40iw_status_code ret_code = 0; enum i40iw_status_code ret_code2 = 0; bool move_cq_head = true; u8 polarity; u8 addl_wqes = 0; Loading Loading @@ -870,19 +868,14 @@ static enum i40iw_status_code i40iw_cq_poll_completion(struct i40iw_cq_uk *cq, move_cq_head = false; if (move_cq_head) { I40IW_RING_MOVE_HEAD(cq->cq_ring, ret_code2); if (ret_code2 && !ret_code) ret_code = ret_code2; I40IW_RING_MOVE_HEAD_NOCHECK(cq->cq_ring); if (I40IW_RING_GETCURRENT_HEAD(cq->cq_ring) == 0) cq->polarity ^= 1; if (post_cq) { I40IW_RING_MOVE_TAIL(cq->cq_ring); set_64bit_val(cq->shadow_area, 0, I40IW_RING_GETCURRENT_HEAD(cq->cq_ring)); } } else { if (info->is_srq) return ret_code; Loading