From 95fa1e1adf86cda17ca4667a6f3621fda326416d Mon Sep 17 00:00:00 2001 From: Selvin Xavier Date: Wed, 28 Feb 2018 09:52:52 -0800 Subject: [PATCH] bnxt_re: Disable atomics support More testing needs to be done before enabling this feature. Disabling the feature temporarily. Bug: 2678 Signed-off-by: Selvin Xavier --- ...able-atomic-capability-on-bnxt_re-ad.patch | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 linux-next-pending/0020-RDMA-bnxt_re-Disable-atomic-capability-on-bnxt_re-ad.patch diff --git a/linux-next-pending/0020-RDMA-bnxt_re-Disable-atomic-capability-on-bnxt_re-ad.patch b/linux-next-pending/0020-RDMA-bnxt_re-Disable-atomic-capability-on-bnxt_re-ad.patch new file mode 100644 index 0000000..c2117c2 --- /dev/null +++ b/linux-next-pending/0020-RDMA-bnxt_re-Disable-atomic-capability-on-bnxt_re-ad.patch @@ -0,0 +1,68 @@ +From 010ed1ac0e3407841bc09d08bf3c0d7c639e5dcc Mon Sep 17 00:00:00 2001 +From: Devesh Sharma +Date: Thu, 15 Feb 2018 21:20:08 -0800 +Subject: [PATCH 1/8] RDMA/bnxt_re: Disable atomic capability on bnxt_re + adapters + +More testing needs to be done before enabling this feature. +Disabling the feature temporarily + +Signed-off-by: Selvin Xavier +Signed-off-by: Doug Ledford +--- + drivers/infiniband/hw/bnxt_re/ib_verbs.c | 6 ++---- + drivers/infiniband/hw/bnxt_re/qplib_sp.c | 14 +------------- + 2 files changed, 3 insertions(+), 17 deletions(-) + +diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c +index 88b4f2c..daa3fd1 100644 +--- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c ++++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c +@@ -173,10 +173,8 @@ int bnxt_re_query_device(struct ib_device *ibdev, + ib_attr->max_pd = dev_attr->max_pd; + ib_attr->max_qp_rd_atom = dev_attr->max_qp_rd_atom; + ib_attr->max_qp_init_rd_atom = dev_attr->max_qp_init_rd_atom; +- if (dev_attr->is_atomic) { +- ib_attr->atomic_cap = IB_ATOMIC_HCA; +- ib_attr->masked_atomic_cap = IB_ATOMIC_HCA; +- } ++ ib_attr->atomic_cap = IB_ATOMIC_NONE; ++ ib_attr->masked_atomic_cap = IB_ATOMIC_NONE; + + ib_attr->max_ee_rd_atom = 0; + ib_attr->max_res_rd_atom = 0; +diff --git a/drivers/infiniband/hw/bnxt_re/qplib_sp.c b/drivers/infiniband/hw/bnxt_re/qplib_sp.c +index e277e54..7ce1d2b 100644 +--- a/drivers/infiniband/hw/bnxt_re/qplib_sp.c ++++ b/drivers/infiniband/hw/bnxt_re/qplib_sp.c +@@ -52,18 +52,6 @@ const struct bnxt_qplib_gid bnxt_qplib_gid_zero = {{ 0, 0, 0, 0, 0, 0, 0, 0, + + /* Device */ + +-static bool bnxt_qplib_is_atomic_cap(struct bnxt_qplib_rcfw *rcfw) +-{ +- int rc; +- u16 pcie_ctl2; +- +- rc = pcie_capability_read_word(rcfw->pdev, PCI_EXP_DEVCTL2, +- &pcie_ctl2); +- if (rc) +- return false; +- return !!(pcie_ctl2 & PCI_EXP_DEVCTL2_ATOMIC_REQ); +-} +- + int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw, + struct bnxt_qplib_dev_attr *attr) + { +@@ -144,7 +132,7 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw, + attr->tqm_alloc_reqs[i * 4 + 3] = *(++tqm_alloc); + } + +- attr->is_atomic = bnxt_qplib_is_atomic_cap(rcfw); ++ attr->is_atomic = 0; + bail: + bnxt_qplib_rcfw_free_sbuf(rcfw, sbuf); + return rc; +-- +1.8.3.1 + -- 2.41.0