diff options
author | Ben Collins <bcollins@ubuntu.com> | 2012-06-11 14:05:02 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-07-20 03:58:43 -0400 |
commit | ff08784b41e1ab5da6776411b7a8381fe942f2cc (patch) | |
tree | 0f26c0cbd909089ccca01ba3516040eb771ad552 /drivers/scsi/aacraid/src.c | |
parent | 7e8a74b177f17d100916b6ad415450f7c9508691 (diff) |
[SCSI] aacraid: Use resource_size_t for IO mem pointers and offsets
This also stops using the "legacy crap" in Scsi_Host (shost->base is an
unsigned long).
This affected 32-bit systems that have 64-bit resource sizes, causing the
IO address to be truncated.
Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Acked-by: Achim Leubner <Achim_Leubner@pmc-sierra.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/aacraid/src.c')
-rw-r--r-- | drivers/scsi/aacraid/src.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c index 762820636304..27a3e77de17f 100644 --- a/drivers/scsi/aacraid/src.c +++ b/drivers/scsi/aacraid/src.c | |||
@@ -435,8 +435,7 @@ static int aac_src_ioremap(struct aac_dev *dev, u32 size) | |||
435 | dev->base = NULL; | 435 | dev->base = NULL; |
436 | if (dev->regs.src.bar1 == NULL) | 436 | if (dev->regs.src.bar1 == NULL) |
437 | return -1; | 437 | return -1; |
438 | dev->base = dev->regs.src.bar0 = ioremap(dev->scsi_host_ptr->base, | 438 | dev->base = dev->regs.src.bar0 = ioremap(dev->base_start, size); |
439 | size); | ||
440 | if (dev->base == NULL) { | 439 | if (dev->base == NULL) { |
441 | iounmap(dev->regs.src.bar1); | 440 | iounmap(dev->regs.src.bar1); |
442 | dev->regs.src.bar1 = NULL; | 441 | dev->regs.src.bar1 = NULL; |
@@ -459,7 +458,7 @@ static int aac_srcv_ioremap(struct aac_dev *dev, u32 size) | |||
459 | dev->base = dev->regs.src.bar0 = NULL; | 458 | dev->base = dev->regs.src.bar0 = NULL; |
460 | return 0; | 459 | return 0; |
461 | } | 460 | } |
462 | dev->base = dev->regs.src.bar0 = ioremap(dev->scsi_host_ptr->base, size); | 461 | dev->base = dev->regs.src.bar0 = ioremap(dev->base_start, size); |
463 | if (dev->base == NULL) | 462 | if (dev->base == NULL) |
464 | return -1; | 463 | return -1; |
465 | dev->IndexRegs = &((struct src_registers __iomem *) | 464 | dev->IndexRegs = &((struct src_registers __iomem *) |
@@ -764,7 +763,7 @@ int aac_srcv_init(struct aac_dev *dev) | |||
764 | name, instance); | 763 | name, instance); |
765 | goto error_iounmap; | 764 | goto error_iounmap; |
766 | } | 765 | } |
767 | dev->dbg_base = dev->scsi_host_ptr->base; | 766 | dev->dbg_base = dev->base_start; |
768 | dev->dbg_base_mapped = dev->base; | 767 | dev->dbg_base_mapped = dev->base; |
769 | dev->dbg_size = dev->base_size; | 768 | dev->dbg_size = dev->base_size; |
770 | 769 | ||