mthca: Modify to support embedded PowerPC platforms
PATCH 1/1 mthca: Modify to support embedded PowerPC platforms
Here's the patch described in part 0.
Use phys_addr_t, rather than unsigned long, for physical addresses to accommodate embedded PowerPC processors which use a 36-bit physical address on a 32-bit CPU. phys_addr_t will be 64-bits on these platforms.
This patch is for Linux kernel 2.6.26.
---
diff -rup a/drivers/infiniband/hw/mthca/mthca_catas.c b/drivers/infiniband/hw/mthca/mthca_catas.c
drivers/infiniband/hw/mthca/mthca_catas.c +2 -2
@@ -148,7 +148,7 @@ static void poll_catas(unsigned long devvoid mthca_start_catas_poll (struct mthca_dev *dev) { -unsigned long addr; +phys_addr_t addr;init_timer (&dev->catas_err.timer); dev->catas_err.stop =0 ;
@@ -161,14 +161,14 @@ void mthca_start_catas_poll(struct mthcaif (!request_mem_region (addr, dev->catas_err.size *4 ,DRV_NAME )) { mthca_warn(dev, "couldn't request catastrophic error region " -"at 0x%lx/0x%x\n" , addr, dev->catas_err.size *4 ); + "at 0x%llx/0x%x\n", (unsigned long long)addr, dev->catas_err.size *
4);
return;
}
dev->catas_err.map = ioremap(addr, dev->catas_err.size * 4); if (!dev->catas_err.map) {
mthca_warn(dev, "couldn't map catastrophic error region "
- "at 0x%lx/0x%x\n", addr, dev->catas_err.size * 4);
+ "at 0x%llx/0x%x\n", (unsigned long long)addr, dev->catas_err.size *
4);
release_mem_region(addr, dev->catas_err.size * 4); return;
}
diff -rup a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
drivers/infiniband/hw/mthca/mthca_cmd.c +1 -1
@@ -712,7 +712,7 @@ int mthca_RUN_FW(struct mthca_dev *dev,static void mthca_setup_cmd_doorbells (struct mthca_dev *dev,u64 base) { -unsigned long addr; +phys_addr_t addr;u16 max_off =0 ;int i;
diff -rup a/drivers/infiniband/hw/mthca/mthca_eq.c b/drivers/infiniband/hw/mthca/mthca_eq.c
drivers/infiniband/hw/mthca/mthca_eq.c +2 -2
@@ -652,7 +652,7 @@ static int mthca_map_reg(struct mthca_de unsigned long offset, unsigned long size, void __iomem **map) { - unsigned long base = pci_resource_start(dev->pdev, 0); + phys_addr_t base = pci_resource_start(dev->pdev, 0);if (!request_mem_region (base + offset, size,DRV_NAME ))return -EBUSY ;
@@ -669,7 +669,7 @@ static int mthca_map_reg(struct mthca_destatic void mthca_unmap_reg (struct mthca_dev *dev,unsigned long offset,unsigned long size,void __iomem *map) { -unsigned long base =pci_resource_start (dev->pdev,0 ); +phys_addr_t base =pci_resource_start (dev->pdev,0 );release_mem_region (base + offset, size);iounmap (map);
diff -rup a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
drivers/infiniband/hw/mthca/mthca_main.c +1 -1
@@ -786,7 +786,7 @@ static int mthca_setup_hca(struct mthca_ goto err_uar_table_free; } - dev->kar =ioremap (dev->driver_uar.pfn <<PAGE_SHIFT ,PAGE_SIZE ); + dev->kar = ioremap((phys_addr_t)(dev->driver_uar.pfn) << PAGE_SHIFT,
PAGE_SIZE);
if (!dev->kar) {
mthca_err(dev, "Couldn't map kernel access region, "
"aborting.\n");
diff -rup a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
drivers/infiniband/hw/mthca/mthca_mr.c +1 -1
@@ -838,7 +838,7 @@ void mthca_arbel_fmr_unmap(struct mthca_int mthca_init_mr_table (struct mthca_dev *dev) { -unsigned long addr; +phys_addr_t addr;int mpts, mtts, err, i; err = mthca_alloc_init(&dev->mr_table.mpt_alloc,
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Quoted 1 line
Here's the patch described in part 0.
I didn't get part 0.
Anyway, patch looks reasonable except it is hopelessly whitespace mangled by your mailer. Please resend so that it can actually be applied.
Quoted 1 line
This patch is for Linux kernel 2.6.26.
We're working on 2.6.38 right now. Please make sure your patch applies to a recent kernel.
- R.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html