diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-12-03 20:49:23 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-12-05 10:25:35 -0600 |
commit | 00769ec40074b753c9b218c2ccaba2bfbfffe056 (patch) | |
tree | b8a05cbdb85f7c4ca8e4368b74a66dfccc3a7b8d /drivers/scsi/megaraid.h | |
parent | e42ebefee15894522f3a84045887573ebc9b764e (diff) | |
download | op-kernel-dev-00769ec40074b753c9b218c2ccaba2bfbfffe056.zip op-kernel-dev-00769ec40074b753c9b218c2ccaba2bfbfffe056.tar.gz |
[SCSI] megaraid: fix MMIO casts
megaraid's MMIO RD*/WR* macros directly call readl() and writel() with
an 'unsigned long' argument. This throws a warning, but is otherwise OK
because the 'unsigned long' is really the result of ioremap(). This
setup is also OK because the variable can hold an ioremap cookie /or/ a
PCI I/O port (PIO).
However, to fix the warning thrown when readl() and writel() are passed
an unsigned long cookie, I introduce 'void __iomem *mmio_base', holding
the same value as 'base'. This will silence the warnings, and also
cause an oops whenever these MMIO-only functions are ever accidentally
passed an I/O address.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/megaraid.h')
-rw-r--r-- | drivers/scsi/megaraid.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/megaraid.h b/drivers/scsi/megaraid.h index 66529f1..c6e7464 100644 --- a/drivers/scsi/megaraid.h +++ b/drivers/scsi/megaraid.h @@ -801,7 +801,8 @@ typedef struct { clustering is available */ u32 flag; - unsigned long base; + unsigned long base; + void __iomem *mmio_base; /* mbox64 with mbox not aligned on 16-byte boundry */ mbox64_t *una_mbox64; |