From: Andrew Boyer Date: Mon, 28 Aug 2017 20:11:57 +0000 (-0400) Subject: IB/rxe: Another fix for broken receive queue draining X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=1223a1af75a85356ec5f5e5a097b60d26f25ff15;p=openwrt%2Fstaging%2Fblogic.git IB/rxe: Another fix for broken receive queue draining This fixes another path in rxe_requester() that might overlook stale SKBs, preventing cleanup. Fixes: 1217197142d1 ("rxe: fix broken receive queue draining") Signed-off-by: Andrew Boyer Signed-off-by: Doug Ledford --- diff --git a/drivers/infiniband/sw/rxe/rxe_req.c b/drivers/infiniband/sw/rxe/rxe_req.c index db7161456f45..d84222f9d5d2 100644 --- a/drivers/infiniband/sw/rxe/rxe_req.c +++ b/drivers/infiniband/sw/rxe/rxe_req.c @@ -594,8 +594,10 @@ int rxe_requester(void *arg) rxe_add_ref(qp); next_wqe: - if (unlikely(!qp->valid)) + if (unlikely(!qp->valid)) { + rxe_drain_req_pkts(qp, true); goto exit; + } if (unlikely(qp->req.state == QP_STATE_ERROR)) { rxe_drain_req_pkts(qp, true);