RDMA/cxgb4: Initialize the device status page
authorSteve Wise <swise@opengridcomputing.com>
Tue, 8 Jul 2014 15:20:35 +0000 (10:20 -0500)
committerRoland Dreier <roland@purestorage.com>
Tue, 8 Jul 2014 23:56:55 +0000 (16:56 -0700)
The status page is mapped to user processes and allows sharing the
device state between the kernel and user processes.  This state isn't
getting initialized and thus intermittently causes problems.  Namely,
the user process can mistakenly think the user doorbell writes are
disabled which causes SQ work requests to never get fetched by HW.

Fixes: 05eb23893c2c ("cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes").
Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Cc: <stable@vger.kernel.org> # v3.15
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/cxgb4/device.c

index dd93aadc996e1ca15e0739a1d60e9c4930b449b8..16b75de4b2def0d914beea43540d1068ddeaabb3 100644 (file)
@@ -696,6 +696,7 @@ static int c4iw_rdev_open(struct c4iw_rdev *rdev)
                pr_err(MOD "error allocating status page\n");
                goto err4;
        }
+       rdev->status_page->db_off = 0;
        return 0;
 err4:
        c4iw_rqtpool_destroy(rdev);