> -----Original Message----- > From: Benjamin Herrenschmidt [mailto:benh@xxxxxxxxxxxxxxxxxxx] > Sent: Thursday, November 05, 2009 12:00 PM > To: James Bottomley > Cc: Josh Boyer; Eric.Moore@xxxxxxx; Pravin Bathija; linux- > scsi@xxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxx > Subject: Re: [PATCH] [SCSI] mpt fusion: Fix 32 bit platforms with 64 > bit resources. > > On Thu, 2009-11-05 at 10:07 -0600, James Bottomley wrote: > > > > > 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. > > Yup, that part of the patch looks wrong. > > However, a mechanical replacement of unsigned long's with > resource_size_t to hold physical addresses should be fine despite the > lack of feedback from LSI. > > Pravin, that ioremap definitely seems like it has nothing to do there, > port IO is already remapped for you by the core PCI code and should > work > "as is". Please respin without that change. > > Cheers, > Ben. > Thanks for the input. Will make the suggested changes and re-submit patch. Regards, Pravin ��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f