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. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html