Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a89d89d authored by Doug Ledford's avatar Doug Ledford
Browse files

Merge branch 'i40iw' into k.o/for-4.8

parents 3e5e8e8a da5c1381
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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);

+3 −0
Original line number Diff line number Diff line
@@ -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

+4 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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;
+11 −18
Original line number Diff line number Diff line
@@ -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 */
@@ -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 */
@@ -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 */
@@ -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;
@@ -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;
@@ -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