aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/bnxt_re/bnxt_re.h
diff options
context:
space:
mode:
authorSomnath Kotur <somnath.kotur@broadcom.com>2017-05-22 03:15:36 -0700
committerDoug Ledford <dledford@redhat.com>2017-06-14 13:01:58 -0400
commit3fb755b3d58084001c89e5f0fd558552bdef9051 (patch)
treea4ee02d3eb52e5a813181e2dbe5ea7b7f3e0ab93 /drivers/infiniband/hw/bnxt_re/bnxt_re.h
parentRDMA/bnxt_re: Dereg MR in FW before freeing the fast_reg_page_list (diff)
downloadlinux-dev-3fb755b3d58084001c89e5f0fd558552bdef9051.tar.xz
linux-dev-3fb755b3d58084001c89e5f0fd558552bdef9051.zip
RDMA/bnxt_re: Add HW workaround for avoiding stall for UD QPs
HW stalls out after 0x800000 WQEs are posted for UD QPs. To workaround this problem, driver will send a modify_qp cmd to the HW at around the halfway mark(0x400000) so that FW can accordingly modify the QP context in the HW to prevent this stall. This workaround needs to be done for UD, QP1 and Raw Ethertype packets. Added a counter to keep track of WQEs posted during post_send. Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/bnxt_re/bnxt_re.h')
-rw-r--r--drivers/infiniband/hw/bnxt_re/bnxt_re.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/bnxt_re/bnxt_re.h b/drivers/infiniband/hw/bnxt_re/bnxt_re.h
index ebf7be8d4139..d5e457ee7e7b 100644
--- a/drivers/infiniband/hw/bnxt_re/bnxt_re.h
+++ b/drivers/infiniband/hw/bnxt_re/bnxt_re.h
@@ -56,6 +56,8 @@
#define BNXT_RE_MAX_SRQC_COUNT (64 * 1024)
#define BNXT_RE_MAX_CQ_COUNT (64 * 1024)
+#define BNXT_RE_UD_QP_HW_STALL 0x400000
+
struct bnxt_re_work {
struct work_struct work;
unsigned long event;