From 94583af86155c496a7ad5c20bdcf845140ac4014 Mon Sep 17 00:00:00 2001 From: Selvin Xavier Date: Tue, 24 Mar 2015 04:17:35 -0700 Subject: [PATCH] be2net-ocrdma: Fixing the RH 6.5/6 backport patch Fixing few issues seen in be2net and ocrdma backport for RH 6.5/6.6 Signed-off-by: Selvin Xavier --- ...e-issue-in-enabling-MSIX-in-RHEL-6.6.patch | 36 +++++++++++++ ...-patch-for-dma_set_mask_and_coherent.patch | 44 ++++++++++++++++ ...a-add-backport-support-for-idr_alloc.patch | 51 +++++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 patches/0031-be2net-Fixing-the-issue-in-enabling-MSIX-in-RHEL-6.6.patch create mode 100644 patches/0032-be2net-Backport-patch-for-dma_set_mask_and_coherent.patch create mode 100644 patches/0033-ocrdma-add-backport-support-for-idr_alloc.patch 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 index 0000000..ba522b6 --- /dev/null +++ b/patches/0031-be2net-Fixing-the-issue-in-enabling-MSIX-in-RHEL-6.6.patch @@ -0,0 +1,36 @@ +From eb2820d0438731f7bf948e33f7e68ae557a6a72c Mon Sep 17 00:00:00 2001 +From: Selvin Xavier +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 +--- + 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 index 0000000..c79ce7c --- /dev/null +++ b/patches/0032-be2net-Backport-patch-for-dma_set_mask_and_coherent.patch @@ -0,0 +1,44 @@ +From 0f219bb75f9ee3c7305b03deacb45785ee209ec4 Mon Sep 17 00:00:00 2001 +From: Padmanabh Ratnakar +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 +--- + 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 index 0000000..668ef1b --- /dev/null +++ b/patches/0033-ocrdma-add-backport-support-for-idr_alloc.patch @@ -0,0 +1,51 @@ +From 515b7c4d26f2bd177a26d0a0b18b00ef194ba3e6 Mon Sep 17 00:00:00 2001 +From: Selvin Xavier +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 +--- + 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 + -- 2.46.0