Commit 4e588c8d authored by Zhu Yanjun's avatar Zhu Yanjun Committed by Doug Ledford

IB/rxe: clean skb queue directly

When resp is in error state, the queued SKBs will not be handled.
The function get_req cleans up the skb queue directly.

CC: Srinivas Eeda <srinivas.eeda@oracle.com>
CC: Junxiao Bi <junxiao.bi@oracle.com>
Signed-off-by: default avatarZhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 6d10550c
...@@ -124,12 +124,9 @@ static inline enum resp_states get_req(struct rxe_qp *qp, ...@@ -124,12 +124,9 @@ static inline enum resp_states get_req(struct rxe_qp *qp,
struct sk_buff *skb; struct sk_buff *skb;
if (qp->resp.state == QP_STATE_ERROR) { if (qp->resp.state == QP_STATE_ERROR) {
skb = skb_dequeue(&qp->req_pkts); while ((skb = skb_dequeue(&qp->req_pkts))) {
if (skb) {
/* drain request packet queue */
rxe_drop_ref(qp); rxe_drop_ref(qp);
kfree_skb(skb); kfree_skb(skb);
return RESPST_GET_REQ;
} }
/* go drain recv wr queue */ /* go drain recv wr queue */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment