linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@suse.de>
To: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Cc: Eric.Moore@lsi.com, pbathija@amcc.com,
	linux-scsi@vger.kernel.org, linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] [SCSI] mpt fusion: Fix 32 bit platforms with 64 bit resources.
Date: Thu, 05 Nov 2009 10:07:06 -0600	[thread overview]
Message-ID: <1257437226.2753.64.camel@mulgrave.site> (raw)
In-Reply-To: <20091105134330.GA30489@zod.rchland.ibm.com>

On Thu, 2009-11-05 at 08:43 -0500, Josh Boyer wrote:
> On Tue, Sep 15, 2009 at 03:25:55PM -0700, pbathija@amcc.com wrote:
> >From: Pravin Bathija <pbathija@amcc.com>
> >
> >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 "phys_addr_t" which is 64-bit. The
> >driver has been tested, the disks get discovered correctly and can do IO. Also,
> >replaced phys_addr_t with resource_size_t as suggested by Ben.
> >
> >Signed-off-by: Pravin Bathija <pbathija@amcc.com>
> >Acked-by: Feng Kan <fkan@amcc.com>
> >Acked-by: Prodyut Hazarika <phazarika@amcc.com>
> >Acked-by: Loc Ho <lho@amcc.com>
> >Acked-by: Tirumala Reddy Marri <tmarri@amcc.com>
> >Acked-by: Victor Gallardo <vgallardo@amcc.com>
> 
> Is this patch included in the scsi tree at all?  I can't seem to find it in
> linux-next and I know it's not in the powerpc tree.  Are there further changes
> needed, or has it simply been missed?

What was the feedback from LSI ... I haven't seen any here?

> josh
> 
> >
> >---
> > drivers/message/fusion/mptbase.c |   34 +++++++++++++++++++++++++---------
> > drivers/message/fusion/mptbase.h |    5 +++--
> > 2 files changed, 28 insertions(+), 11 deletions(-)
> >
> >diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
> >index 5d496a9..e296f2e 100644
> >--- a/drivers/message/fusion/mptbase.c
> >+++ b/drivers/message/fusion/mptbase.c
> >@@ -1510,11 +1510,12 @@ static int
> > mpt_mapresources(MPT_ADAPTER *ioc)
> > {
> > 	u8		__iomem *mem;
> >+	u8		__iomem *port;
> > 	int		 ii;
> >-	unsigned long	 mem_phys;
> >-	unsigned long	 port;
> >-	u32		 msize;
> >-	u32		 psize;
> >+	resource_size_t	 mem_phys;
> >+	resource_size_t	 port_phys;
> >+	resource_size_t	 msize;
> >+	resource_size_t	 psize;
> > 	u8		 revision;
> > 	int		 r = -ENODEV;
> > 	struct pci_dev *pdev;
> >@@ -1552,13 +1553,13 @@ mpt_mapresources(MPT_ADAPTER *ioc)
> > 	}
> >
> > 	mem_phys = msize = 0;
> >-	port = psize = 0;
> >+	port_phys = psize = 0;
> > 	for (ii = 0; ii < DEVICE_COUNT_RESOURCE; ii++) {
> > 		if (pci_resource_flags(pdev, ii) & PCI_BASE_ADDRESS_SPACE_IO) {
> > 			if (psize)
> > 				continue;
> > 			/* Get I/O space! */
> >-			port = pci_resource_start(pdev, ii);
> >+			port_phys = pci_resource_start(pdev, ii);
> > 			psize = pci_resource_len(pdev, ii);
> > 		} else {
> > 			if (msize)
> >@@ -1580,14 +1581,23 @@ mpt_mapresources(MPT_ADAPTER *ioc)
> > 		return -EINVAL;
> > 	}
> > 	ioc->memmap = mem;
> >-	dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %lx\n",
> >-	    ioc->name, mem, mem_phys));
> >+	dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %llx\n",
> >+	    ioc->name, mem, (u64)mem_phys));
> >
> > 	ioc->mem_phys = mem_phys;
> > 	ioc->chip = (SYSIF_REGS __iomem *)mem;
> >
> > 	/* Save Port IO values in case we need to do downloadboot */
> >-	ioc->pio_mem_phys = port;
> >+	port = ioremap(port_phys, psize);
> >+	if (port == NULL) {
> >+		printk(MYIOC_s_ERR_FMT " : ERROR - Unable to map adapter"
> >+			" port !\n", ioc->name);
> >+		return -EINVAL;

So this looks problematic on a few platforms ... what happens to
platforms that have no IO space?  They automatically fail here and it
looks like the adapter never attaches.

James

  reply	other threads:[~2009-11-05 16:07 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-15 22:25 [PATCH] [SCSI] mpt fusion: Fix 32 bit platforms with 64 bit resources pbathija
2009-11-05 13:43 ` Josh Boyer
2009-11-05 16:07   ` James Bottomley [this message]
2009-11-05 16:25     ` Josh Boyer
2009-11-05 20:00     ` Benjamin Herrenschmidt
2009-11-06  4:59       ` Desai, Kashyap
2009-11-06  5:49       ` Pravin Bathija
2009-11-06  5:57       ` Pravin Bathija
  -- strict thread matches above, loose matches on Subject: below --
2009-12-03  1:51 Pravin Bathija
2009-12-03  2:59 ` Benjamin Herrenschmidt
2009-12-03  5:26   ` Desai, Kashyap
2009-12-03  8:56 ` Wolfgang Denk
2009-12-03 23:21   ` Pravin Bathija
2009-12-03 23:48     ` Benjamin Herrenschmidt
2009-12-10 15:43 ` James Bottomley
2009-12-10 16:36   ` Anatolij Gustschin
2009-11-18  0:16 pbathija
2009-11-18  5:41 ` Benjamin Herrenschmidt
2009-09-09  0:15 pbathija
2009-09-15 10:29 ` Benjamin Herrenschmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1257437226.2753.64.camel@mulgrave.site \
    --to=james.bottomley@suse.de \
    --cc=Eric.Moore@lsi.com \
    --cc=jwboyer@linux.vnet.ibm.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=pbathija@amcc.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).