[PATCH] [SCSI] mpt fusion: Fix 32 bit platforms with 64 bit resources.
Anatolij Gustschin
agust at denx.de
Fri Dec 11 03:36:44 EST 2009
On Thu, 10 Dec 2009 09:43:38 -0600
James Bottomley <James.Bottomley at suse.de> wrote:
> On Wed, 2009-12-02 at 17:51 -0800, Pravin Bathija wrote:
> > Powerpc 44x uses 36 bit real address while the real address defined
> > in MPT Fusion driver is of type 32 bit. This causes ioremap to fail and driver
> > fails to initialize. This fix changes the data types representing the real
> > address from unsigned long 32-bit types to resource_size_t which is 64-bit. The
> > driver has been tested, the disks get discovered correctly and can do IO.
> >
> > Signed-off-by: Pravin Bathija <pbathija at amcc.com>
> > Acked-by: Feng Kan <fkan at amcc.com>
> > Acked-by: Fushen Chen <fchen at amcc.com>
> > Acked-by: Loc Ho <lho at amcc.com>
> > Acked-by: Tirumala Reddy Marri <tmarri at amcc.com>
> > Acked-by: Victor Gallardo <vgallardo at amcc.com>
> > ---
> > drivers/message/fusion/mptbase.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
> > index 5d496a9..9f14a60 100644
> > --- a/drivers/message/fusion/mptbase.c
> > +++ b/drivers/message/fusion/mptbase.c
> > @@ -1511,7 +1511,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
> > {
> > u8 __iomem *mem;
> > int ii;
> > - unsigned long mem_phys;
> > + resource_size_t mem_phys;
>
> You never actually compiled this, did you?
>
> drivers/message/fusion/mptbase.c: In function 'mpt_mapresources':
> drivers/message/fusion/mptbase.c:1680: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
>
> I'll just fold the fix in
another patch (inlined below) should probably also go in as 'mem_phys' is
assigned to ioc->mem_phys which is 'u32'. ioc->mem_phys is never used in
the driver, however.
Some time ago I posted a patch which enables using second LSI SAS HBA on
PPC440SPe based katmai board again:
http://thread.gmane.org/gmane.linux.scsi/54839
Could someone comment on this patch, please. Thanks!
Anatolij
---
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 8dd4d21..8dc58e3 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -605,7 +605,7 @@ typedef struct _MPT_ADAPTER
SYSIF_REGS __iomem *chip; /* == c8817000 (mmap) */
SYSIF_REGS __iomem *pio_chip; /* Programmed IO (downloadboot) */
u8 bus_type;
- u32 mem_phys; /* == f4020000 (mmap) */
+ resource_size_t mem_phys; /* == f4020000 (mmap) */
u32 pio_mem_phys; /* Programmed IO (downloadboot) */
int mem_size; /* mmap memory size */
int number_of_buses;
More information about the Linuxppc-dev
mailing list