From: Christoph Hellwig Also remove the page masking before ioremap, it's not been nessecary for ages. Signed-off-by: Andrew Morton --- 25-akpm/drivers/block/cciss.c | 22 +++------------------- 25-akpm/drivers/block/cciss.h | 5 ++--- 2 files changed, 5 insertions(+), 22 deletions(-) diff -puN drivers/block/cciss.c~__iomem-annotations-for-cciss drivers/block/cciss.c --- 25/drivers/block/cciss.c~__iomem-annotations-for-cciss 2004-10-03 16:28:41.088905888 -0700 +++ 25-akpm/drivers/block/cciss.c 2004-10-03 16:28:41.097904520 -0700 @@ -1841,17 +1841,6 @@ cleanup1: cmd_free(info_p, c, 1); return (status); } -/* - * Map (physical) PCI mem into (virtual) kernel space - */ -static ulong remap_pci_mem(ulong base, ulong size) -{ - ulong page_base = ((ulong) base) & PAGE_MASK; - ulong page_offs = ((ulong) base) - page_base; - ulong page_remapped = (ulong) ioremap(page_base, page_offs+size); - - return (ulong) (page_remapped ? (page_remapped + page_offs) : 0UL); -} /* * Takes jobs of the Q and sends them to the hardware, then puts it on @@ -2369,11 +2358,7 @@ static int cciss_pci_init(ctlr_info_t *c * table */ - c->paddr = pci_resource_start(pdev, 0); /* addressing mode bits already removed */ -#ifdef CCISS_DEBUG - printk("address 0 = %x\n", c->paddr); -#endif /* CCISS_DEBUG */ - c->vaddr = remap_pci_mem(c->paddr, 200); + c->vaddr = ioremap(pci_resource_start(pdev, 0), 200); /* Wait for the board to become ready. (PCI hotplug needs this.) * We poll for up to 120 secs, once per 100ms. */ @@ -2410,8 +2395,7 @@ static int cciss_pci_init(ctlr_info_t *c #ifdef CCISS_DEBUG printk("cfg offset = %x\n", cfg_offset); #endif /* CCISS_DEBUG */ - c->cfgtable = (CfgTable_struct *) - remap_pci_mem(pci_resource_start(pdev, cfg_base_addr_index) + c->cfgtable = ioremap(pci_resource_start(pdev, cfg_base_addr_index) + cfg_offset, sizeof(CfgTable_struct)); c->board_id = board_id; @@ -2824,7 +2808,7 @@ static void __devexit cciss_remove_one ( } free_irq(hba[i]->intr, hba[i]); pci_set_drvdata(pdev, NULL); - iounmap((void*)hba[i]->vaddr); + iounmap(hba[i]->vaddr); cciss_unregister_scsi(i); /* unhook from SCSI subsystem */ unregister_blkdev(COMPAQ_CISS_MAJOR+i, hba[i]->devname); remove_proc_entry(hba[i]->devname, proc_cciss); diff -puN drivers/block/cciss.h~__iomem-annotations-for-cciss drivers/block/cciss.h --- 25/drivers/block/cciss.h~__iomem-annotations-for-cciss 2004-10-03 16:28:41.089905736 -0700 +++ 25-akpm/drivers/block/cciss.h 2004-10-03 16:28:41.097904520 -0700 @@ -43,11 +43,10 @@ struct ctlr_info char firm_ver[4]; // Firmware version struct pci_dev *pdev; __u32 board_id; - unsigned long vaddr; - unsigned long paddr; + void __iomem *vaddr; unsigned long io_mem_addr; unsigned long io_mem_length; - CfgTable_struct *cfgtable; + CfgTable_struct __iomem *cfgtable; unsigned int intr; int interrupts_enabled; int max_commands; _