IB/rxe: Another fix for broken receive queue draining
authorAndrew Boyer <andrew.boyer@dell.com>
Mon, 28 Aug 2017 20:11:57 +0000 (16:11 -0400)
committerDoug Ledford <dledford@redhat.com>
Mon, 28 Aug 2017 23:12:35 +0000 (19:12 -0400)
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 <andrew.boyer@dell.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/sw/rxe/rxe_req.c

index db7161456f45cfed62e4c9f2c6cf32f018ecca1f..d84222f9d5d2ed11356c4a3399e311a7c5364e5f 100644 (file)
@@ -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);