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

Commit 5412352f authored by Yuval Shaia's avatar Yuval Shaia Committed by Doug Ledford
Browse files

IB/mlx4: Return EAGAIN for any error in mlx4_ib_poll_one



Error code EAGAIN should be used when errors are temporary and next call
might succeeds.
When error code other than EAGAIN is returned, the caller (mlx4_ib_poll)
will assume all CQE in the same bunch are error too and will drop them all.

Signed-off-by: default avatarYuval Shaia <yuval.shaia@oracle.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent e6a00f66
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -690,7 +690,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq,
	if (unlikely((cqe->owner_sr_opcode & MLX4_CQE_OPCODE_MASK) == MLX4_OPCODE_NOP &&
		     is_send)) {
		pr_warn("Completion for NOP opcode detected!\n");
		return -EINVAL;
		return -EAGAIN;
	}

	/* Resize CQ in progress */
@@ -721,7 +721,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq,
		if (unlikely(!mqp)) {
			pr_warn("CQ %06x with entry for unknown QPN %06x\n",
			       cq->mcq.cqn, be32_to_cpu(cqe->vlan_my_qpn) & MLX4_CQE_QPN_MASK);
			return -EINVAL;
			return -EAGAIN;
		}

		*cur_qp = to_mibqp(mqp);
@@ -739,7 +739,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq,
		if (unlikely(!msrq)) {
			pr_warn("CQ %06x with entry for unknown SRQN %06x\n",
				cq->mcq.cqn, srq_num);
			return -EINVAL;
			return -EAGAIN;
		}
	}