Skip to contentSkip to conversation

mthca: Modify to support embedded PowerPC platforms

PATCH In review J.L. Burr 2 participants 2 messages Jan 6, 2011 – Jan 7, 2011 InfiniBand

lore
Share & tools
lore

J.L. Burr

author
#0 lore raw

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 dev
 
 void 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 mthca
  if (!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_de
 static 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

#1 lore raw
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