Re: [PATCH] IB/hfi1: change PCI bar addr assignments to Linux API functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/10/2017 2:52 PM, Christoph Hellwig wrote:
On Wed, May 10, 2017 at 01:48:13PM -0500, Steven L. Roberts wrote:
From: "Steven L. Roberts" <robers97@xxxxxxxxx>

The Ominpath adapter driver fails to load the ppc64le platform
due to invalid PCI setup.

This patch makes the PCI configuration more robust and will
fixes 64 bit addressing for ppc64le.

Signed-off-by: Steven L Roberts <robers97@xxxxxxxxx>
---
 drivers/infiniband/hw/hfi1/pcie.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/hfi1/pcie.c b/drivers/infiniband/hw/hfi1/pcie.c
index 93faf86..6a9f6f9 100644
--- a/drivers/infiniband/hw/hfi1/pcie.c
+++ b/drivers/infiniband/hw/hfi1/pcie.c
@@ -207,8 +207,8 @@ int hfi1_pcie_ddinit(struct hfi1_devdata *dd, struct pci_dev *pdev)
 	/*
 	 * Save BARs and command to rewrite after device reset.
 	 */
-	dd->pcibar0 = addr;
-	dd->pcibar1 = addr >> 32;
+	pci_read_config_dword(dd->pcidev, PCI_BASE_ADDRESS_0, &dd->pcibar0);
+	pci_read_config_dword(dd->pcidev, PCI_BASE_ADDRESS_1, &dd->pcibar1);

Why do you even read / re-write them?  Thjis isn't the drivers job.

We save them off so we can restore after a reset wipes them out. See restore_pci_variables().

The restore function already uses the PCI_BASE_ADDRESS_* values so the only change was needed here.

-Denny


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux