diff options
author | John L. Burr <jlburr@cadence.com> | 2011-01-11 23:39:46 -0500 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2011-01-11 23:39:47 -0500 |
commit | eb4a7cbf27082bea34764bab3bc85595683f967b (patch) | |
tree | 4d0d799a04c7d62d9ceb35e73f01112a49dc5d83 /drivers/infiniband/hw/mthca/mthca_catas.c | |
parent | 4162cf64973df51fc885825bc9ca4d055891c49f (diff) |
IB/mthca: Fix driver when sizeof (phys_addr_t) > sizeof (long)
Some systems have PCI addresses that don't fit in unsigned long (eg some
32-bit PowerPC 440 systems have 36-bit bus addresses). Fix up the driver
by using phys_addr_t where appropriate, so we don't truncate any PCI
resource addresses before ioremapping them.
Signed-off-by: John L. Burr <jlburr@cadence.com>
[ Update to apply to current driver source. - Roland ]
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_catas.c')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_catas.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_catas.c b/drivers/infiniband/hw/mthca/mthca_catas.c index 0aa0110e4b6c..e4a08c2819e4 100644 --- a/drivers/infiniband/hw/mthca/mthca_catas.c +++ b/drivers/infiniband/hw/mthca/mthca_catas.c | |||
@@ -146,7 +146,7 @@ static void poll_catas(unsigned long dev_ptr) | |||
146 | 146 | ||
147 | void mthca_start_catas_poll(struct mthca_dev *dev) | 147 | void mthca_start_catas_poll(struct mthca_dev *dev) |
148 | { | 148 | { |
149 | unsigned long addr; | 149 | phys_addr_t addr; |
150 | 150 | ||
151 | init_timer(&dev->catas_err.timer); | 151 | init_timer(&dev->catas_err.timer); |
152 | dev->catas_err.map = NULL; | 152 | dev->catas_err.map = NULL; |
@@ -158,7 +158,8 @@ void mthca_start_catas_poll(struct mthca_dev *dev) | |||
158 | dev->catas_err.map = ioremap(addr, dev->catas_err.size * 4); | 158 | dev->catas_err.map = ioremap(addr, dev->catas_err.size * 4); |
159 | if (!dev->catas_err.map) { | 159 | if (!dev->catas_err.map) { |
160 | mthca_warn(dev, "couldn't map catastrophic error region " | 160 | mthca_warn(dev, "couldn't map catastrophic error region " |
161 | "at 0x%lx/0x%x\n", addr, dev->catas_err.size * 4); | 161 | "at 0x%llx/0x%x\n", (unsigned long long) addr, |
162 | dev->catas_err.size * 4); | ||
162 | return; | 163 | return; |
163 | } | 164 | } |
164 | 165 | ||