]> git.openfabrics.org - ~emulex/for-vlad/compat-rdma.git/commitdiff
be2net-ocrdma: Fixing the RH 6.5/6 backport patch
authorSelvin Xavier <selvin.xavier@emulex.com>
Tue, 24 Mar 2015 11:17:35 +0000 (04:17 -0700)
committerSelvin Xavier <selvin.xavier@emulex.com>
Tue, 24 Mar 2015 11:17:35 +0000 (04:17 -0700)
Fixing few issues seen in be2net and ocrdma backport for RH 6.5/6.6

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
patches/0031-be2net-Fixing-the-issue-in-enabling-MSIX-in-RHEL-6.6.patch [new file with mode: 0644]
patches/0032-be2net-Backport-patch-for-dma_set_mask_and_coherent.patch [new file with mode: 0644]
patches/0033-ocrdma-add-backport-support-for-idr_alloc.patch [new file with mode: 0644]

diff --git a/patches/0031-be2net-Fixing-the-issue-in-enabling-MSIX-in-RHEL-6.6.patch b/patches/0031-be2net-Fixing-the-issue-in-enabling-MSIX-in-RHEL-6.6.patch
new file mode 100644 (file)
index 0000000..ba522b6
--- /dev/null
@@ -0,0 +1,36 @@
+From eb2820d0438731f7bf948e33f7e68ae557a6a72c Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@emulex.com>
+Date: Thu, 19 Mar 2015 11:56:10 +0530
+Subject: [PATCH 3/7] be2net: Fixing the issue in enabling MSIX in RHEL 6.6
+
+HAVE_PCI_ENABLE_MSIX_RANGE define was not used properly while
+enabling MSIX
+
+Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
+---
+ drivers/net/ethernet/emulex/benet/be_main.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
+index c745fba..2492c7c 100644
+--- a/drivers/net/ethernet/emulex/benet/be_main.c
++++ b/drivers/net/ethernet/emulex/benet/be_main.c
+@@ -2903,6 +2903,7 @@ static int be_msix_enable(struct be_adapter *adapter)
+        }
+ done:
++#endif
+       if (be_roce_supported(adapter) && num_vec > MIN_MSIX_VECTORS) {
+               adapter->num_msix_roce_vec = num_vec / 2;
+               dev_info(dev, "enabled %d MSI-x vector(s) for RoCE\n",
+@@ -2914,7 +2915,6 @@ done:
+       dev_info(dev, "enabled %d MSI-x vector(s) for NIC\n",
+                adapter->num_msix_vec);
+       return 0;
+-#endif
+ fail:
+       dev_warn(dev, "MSIx enable failed\n");
+-- 
+1.7.9.5
+
diff --git a/patches/0032-be2net-Backport-patch-for-dma_set_mask_and_coherent.patch b/patches/0032-be2net-Backport-patch-for-dma_set_mask_and_coherent.patch
new file mode 100644 (file)
index 0000000..c79ce7c
--- /dev/null
@@ -0,0 +1,44 @@
+From 0f219bb75f9ee3c7305b03deacb45785ee209ec4 Mon Sep 17 00:00:00 2001
+From: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
+Date: Wed, 25 Mar 2015 03:08:16 +0530
+Subject: [PATCH 1/2] be2net: Backport patch for dma_set_mask_and_coherent
+
+If dma_set_mask_and_coherent is not defined, use pci_set_dma_mask
+and pci_set_consistent_dma_mask
+
+Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
+---
+ drivers/net/ethernet/emulex/benet/be_main.c |   17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
+index 2492c7c..4b68fe9 100644
+--- a/drivers/net/ethernet/emulex/benet/be_main.c
++++ b/drivers/net/ethernet/emulex/benet/be_main.c
+@@ -5151,6 +5151,23 @@ static int be_probe(struct pci_dev *pdev, const struct pci_device_id *pdev_id)
+                       goto free_netdev;
+               }
+       }
++#else
++      status = pci_set_dma_mask(pdev, DMA_BIT_MASK(64));
++      if (status) {
++              status = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
++              if (status) {
++                      dev_err(&pdev->dev, "Could not set PCI DMA Mask\n");
++                      goto free_netdev;
++              }
++      }
++      status = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
++      if (status) {
++              status = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
++              if (status) {
++                      dev_err(&pdev->dev, "Could not set PCI DMA consistent Mask\n");
++                      goto free_netdev;
++              }
++      }
+ #endif
+       status = pci_enable_pcie_error_reporting(pdev);
+-- 
+1.7.9.5
+
diff --git a/patches/0033-ocrdma-add-backport-support-for-idr_alloc.patch b/patches/0033-ocrdma-add-backport-support-for-idr_alloc.patch
new file mode 100644 (file)
index 0000000..668ef1b
--- /dev/null
@@ -0,0 +1,51 @@
+From 515b7c4d26f2bd177a26d0a0b18b00ef194ba3e6 Mon Sep 17 00:00:00 2001
+From: Selvin Xavier <selvin.xavier@emulex.com>
+Date: Wed, 25 Mar 2015 04:25:15 +0530
+Subject: [PATCH 1/2] ocrdma: add backport support for idr_alloc
+
+correct compat changes for idr_alloc
+Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
+---
+ drivers/infiniband/hw/ocrdma/ocrdma_main.c |   18 ++++++++++++++----
+ 1 file changed, 14 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+index 81bb97a..8be0900 100644
+--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
++++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+@@ -458,7 +458,10 @@ static struct ocrdma_dev *ocrdma_add(struct be_dev_info *dev_info)
+ {
+       int status = 0, i;
+       struct ocrdma_dev *dev;
+-
++#ifndef HAVE_IDR_ALLOC
++      int newid;
++      int ret;
++#endif
+       dev = (struct ocrdma_dev *)ib_alloc_device(sizeof(struct ocrdma_dev));
+       if (!dev) {
+               pr_err("Unable to allocate ib device\n");
+@@ -469,10 +472,17 @@ static struct ocrdma_dev *ocrdma_add(struct be_dev_info *dev_info)
+               goto idr_err;
+       memcpy(&dev->nic_info, dev_info, sizeof(*dev_info));
+-#ifdef HAVE_IDR_NEW_INTERFACE
+-      dev->id = idr_alloc(&ocrdma_dev_id, NULL, 0, 0, GFP_KERNEL);
++#ifdef HAVE_IDR_ALLOC
++      idr_preload(GFP_KERNEL);
++      dev->id = idr_alloc(&ocrdma_dev_id, dev, 0, 0, GFP_NOWAIT);
++      idr_preload_end();
+ #else
+-      idr_get_new(&ocrdma_dev_id, NULL, &dev->id);
++      do {
++              if (!idr_pre_get(&ocrdma_dev_id, GFP_KERNEL))
++                      break;
++              ret = idr_get_new(&ocrdma_dev_id, dev, &newid);
++      } while (ret == -EAGAIN);
++      dev->id = newid;        
+ #endif
+       if (dev->id < 0)
+               goto idr_err;
+-- 
+1.7.9.5
+