Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma
Pull rdma fixes from Doug Ledford: "First round of -rc fixes for 4.10 kernel: - a series of qedr fixes - a series of rxe fixes - one i40iw fix - one cma fix - one cxgb4 fix" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: IB/rxe: Don't check for null ptr in send() IB/rxe: Drop future atomic/read packets rather than retrying IB/rxe: Use BTH_PSN_MASK when ACKing duplicate sends qedr: Always notify the verb consumer of flushed CQEs qedr: clear the vendor error field in the work completion qedr: post_send/recv according to QP state qedr: ignore inline flag in read verbs qedr: modify QP state to error when destroying it qedr: return correct value on modify qp qedr: return error if destroy CQ failed qedr: configure the number of CQEs on CQ creation i40iw: Set 128B as the only supported RQ WQE size IB/cma: Fix a race condition in iboe_addr_get_sgid() IB/rxe: Fix a memory leak in rxe_qp_cleanup() iw_cxgb4: set correct FetchBurstMax for QPs
This commit is contained in:
@@ -224,7 +224,7 @@ static inline enum comp_state check_psn(struct rxe_qp *qp,
|
||||
else
|
||||
return COMPST_DONE;
|
||||
} else if ((diff > 0) && (wqe->mask & WR_ATOMIC_OR_READ_MASK)) {
|
||||
return COMPST_ERROR_RETRY;
|
||||
return COMPST_DONE;
|
||||
} else {
|
||||
return COMPST_CHECK_ACK;
|
||||
}
|
||||
|
@@ -455,8 +455,7 @@ static int send(struct rxe_dev *rxe, struct rxe_pkt_info *pkt,
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
if (pkt->qp)
|
||||
atomic_inc(&pkt->qp->skb_out);
|
||||
atomic_inc(&pkt->qp->skb_out);
|
||||
kfree_skb(skb);
|
||||
|
||||
return 0;
|
||||
|
@@ -855,4 +855,5 @@ void rxe_qp_cleanup(void *arg)
|
||||
free_rd_atomic_resources(qp);
|
||||
|
||||
kernel_sock_shutdown(qp->sk, SHUT_RDWR);
|
||||
sock_release(qp->sk);
|
||||
}
|
||||
|
@@ -1070,12 +1070,13 @@ static enum resp_states duplicate_request(struct rxe_qp *qp,
|
||||
struct rxe_pkt_info *pkt)
|
||||
{
|
||||
enum resp_states rc;
|
||||
u32 prev_psn = (qp->resp.psn - 1) & BTH_PSN_MASK;
|
||||
|
||||
if (pkt->mask & RXE_SEND_MASK ||
|
||||
pkt->mask & RXE_WRITE_MASK) {
|
||||
/* SEND. Ack again and cleanup. C9-105. */
|
||||
if (bth_ack(pkt))
|
||||
send_ack(qp, pkt, AETH_ACK_UNLIMITED, qp->resp.psn - 1);
|
||||
send_ack(qp, pkt, AETH_ACK_UNLIMITED, prev_psn);
|
||||
rc = RESPST_CLEANUP;
|
||||
goto out;
|
||||
} else if (pkt->mask & RXE_READ_MASK) {
|
||||
|
Reference in New Issue
Block a user