]> git.openfabrics.org - ~emulex/tmp/compat-rdma/.git/commitdiff
RDMA/ocrdma: Added ocrdma cherry-picks based on upstream commits
authorDevesh Sharma <devesh.sharma@emulex.com>
Wed, 19 Feb 2014 11:10:35 +0000 (03:10 -0800)
committerDevesh Sharma <devesh.sharma@emulex.com>
Wed, 19 Feb 2014 11:10:35 +0000 (03:10 -0800)
fe5e8a1acc7fd877b6706053cf88c418c33fe7a3 RDMA/ocrdma: Fix AV_VALID bit position
be8348df6efac6b602f2ad3210139bccf0dbe3d7 RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition
da2f920ba5405aa1d1b2c71168e5c59f9ef732dc RDMA/ocrdma: Fix traffic class shift
b140314053fe6b7f4543b3e9c92f716712ec3d7a RDMA/ocrdma: Fix load time panic during GID table init

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
linux-next-cherry-picks/0043-RDMA-ocrdma-Fix-AV_VALID-bit-position.patch [new file with mode: 0644]
linux-next-cherry-picks/0044-RDMA-ocrdma-Fix-OCRDMA_GEN2_FAMILY-macro-definition.patch [new file with mode: 0644]
linux-next-cherry-picks/0045-RDMA-ocrdma-Fix-traffic-class-shift.patch [new file with mode: 0644]
linux-next-cherry-picks/0046-RDMA-ocrdma-Fix-load-time-panic-during-GID-table-ini.patch [new file with mode: 0644]

diff --git a/linux-next-cherry-picks/0043-RDMA-ocrdma-Fix-AV_VALID-bit-position.patch b/linux-next-cherry-picks/0043-RDMA-ocrdma-Fix-AV_VALID-bit-position.patch
new file mode 100644 (file)
index 0000000..855108c
--- /dev/null
@@ -0,0 +1,43 @@
+From b4bf21da04a78203f7028b0d17caf16a7534b946 Mon Sep 17 00:00:00 2001
+From: Devesh Sharma <devesh.sharma@emulex.com>
+Date: Thu, 5 Dec 2013 15:48:01 +0530
+Subject: [PATCH 1/4] RDMA/ocrdma: Fix AV_VALID bit position
+
+Fix ah->av->valid bit position and big endian portability.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_ah.c  |    1 +
+ drivers/infiniband/hw/ocrdma/ocrdma_sli.h |    2 +-
+ 2 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_ah.c b/drivers/infiniband/hw/ocrdma/ocrdma_ah.c
+index ee499d9..69da5dd 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_ah.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_ah.c
+@@ -84,6 +84,7 @@ static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah,
+       memcpy((u8 *)ah->av + eth_sz, &grh, sizeof(struct ocrdma_grh));
+       if (vlan_enabled)
+               ah->av->valid |= OCRDMA_AV_VLAN_VALID;
++      ah->av->valid = cpu_to_le32(ah->av->valid);
+       return status;
+ }
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_sli.h b/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
+index 9f9570e..2708903 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
+@@ -1694,7 +1694,7 @@ struct ocrdma_grh {
+       u16     rsvd;
+ } __packed;
+-#define OCRDMA_AV_VALID               Bit(0)
++#define OCRDMA_AV_VALID               Bit(7)
+ #define OCRDMA_AV_VLAN_VALID  Bit(1)
+ struct ocrdma_av {
+-- 
+1.7.1
+
diff --git a/linux-next-cherry-picks/0044-RDMA-ocrdma-Fix-OCRDMA_GEN2_FAMILY-macro-definition.patch b/linux-next-cherry-picks/0044-RDMA-ocrdma-Fix-OCRDMA_GEN2_FAMILY-macro-definition.patch
new file mode 100644 (file)
index 0000000..af216d9
--- /dev/null
@@ -0,0 +1,29 @@
+From fef5ee19f628a745ea46a74d7a962721f38ab2e3 Mon Sep 17 00:00:00 2001
+From: Devesh Sharma <devesh.sharma@emulex.com>
+Date: Thu, 5 Dec 2013 04:16:07 +0000
+Subject: [PATCH 2/4] RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition
+
+OCRDMA_GEN2_FAMILY is wrongly defined as 0x02 -- it should be 0x0F.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_sli.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_sli.h b/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
+index 2708903..60d5ac2 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_sli.h
+@@ -31,7 +31,7 @@
+ #define Bit(_b) (1 << (_b))
+ #define OCRDMA_GEN1_FAMILY    0xB
+-#define OCRDMA_GEN2_FAMILY    0x2
++#define OCRDMA_GEN2_FAMILY    0x0F
+ #define OCRDMA_SUBSYS_ROCE 10
+ enum {
+-- 
+1.7.1
+
diff --git a/linux-next-cherry-picks/0045-RDMA-ocrdma-Fix-traffic-class-shift.patch b/linux-next-cherry-picks/0045-RDMA-ocrdma-Fix-traffic-class-shift.patch
new file mode 100644 (file)
index 0000000..a3fe7ff
--- /dev/null
@@ -0,0 +1,31 @@
+From da9d6c3b177016ee810d8827cddbf71c2ee80265 Mon Sep 17 00:00:00 2001
+From: devesh.sharma@emulex.com <devesh.sharma@emulex.com>
+Date: Mon, 10 Feb 2014 08:18:58 +0000
+Subject: [PATCH 3/4] RDMA/ocrdma: Fix traffic class shift
+
+Use correct value for obtaining traffic class from device
+response for Query QP request.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
+Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_verbs.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+index 69f1d12..86242ce 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+@@ -1415,7 +1415,7 @@ int ocrdma_query_qp(struct ib_qp *ibqp,
+                                         OCRDMA_QP_PARAMS_HOP_LMT_MASK) >>
+                                               OCRDMA_QP_PARAMS_HOP_LMT_SHIFT;
+       qp_attr->ah_attr.grh.traffic_class = (params.tclass_sq_psn &
+-                                            OCRDMA_QP_PARAMS_SQ_PSN_MASK) >>
++                                            OCRDMA_QP_PARAMS_TCLASS_MASK) >>
+                                               OCRDMA_QP_PARAMS_TCLASS_SHIFT;
+       qp_attr->ah_attr.ah_flags = IB_AH_GRH;
+-- 
+1.7.1
+
diff --git a/linux-next-cherry-picks/0046-RDMA-ocrdma-Fix-load-time-panic-during-GID-table-ini.patch b/linux-next-cherry-picks/0046-RDMA-ocrdma-Fix-load-time-panic-during-GID-table-ini.patch
new file mode 100644 (file)
index 0000000..f284777
--- /dev/null
@@ -0,0 +1,40 @@
+From 94e15b2d7dfedfdcde819dc5c6590226a172b84a Mon Sep 17 00:00:00 2001
+From: Devesh Sharma <devesh.sharma@emulex.com>
+Date: Sat, 1 Feb 2014 18:54:25 +0530
+Subject: [PATCH 4/4] RDMA/ocrdma: Fix load time panic during GID table init
+
+driver should use rdma_vlan_dev_real_dev() instead of using vlan_dev_real_dev()
+while building GID table for a vlan interface.
+
+Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_main.c |    6 ++++--
+ 1 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+index 0ce7674..48794bb 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+@@ -161,7 +161,9 @@ static void ocrdma_add_vlan_sgids(struct ocrdma_dev *dev)
+       rcu_read_lock();
+       for_each_netdev_rcu(&init_net, tmp) {
+-              if (netdev == tmp || vlan_dev_real_dev(tmp) == netdev) {
++              if (
++                      netdev && (netdev == tmp ||
++                              rdma_vlan_dev_real_dev(tmp) == netdev)) {
+                       if (!netif_running(tmp) || !netif_oper_up(tmp))
+                               continue;
+                       if (netdev != tmp) {
+@@ -208,7 +210,7 @@ static int ocrdma_inet6addr_event(struct notifier_block *notifier,
+       is_vlan = netdev->priv_flags & IFF_802_1Q_VLAN;
+       if (is_vlan) {
+               vid = vlan_dev_vlan_id(netdev);
+-              netdev = vlan_dev_real_dev(netdev);
++              netdev = rdma_vlan_dev_real_dev(netdev);
+       }
+       rcu_read_lock();
+-- 
+1.7.1
+