From: Amol Lad ioremap must be balanced by an iounmap and failing to do so can result in a memory leak. Signed-off-by: Amol Lad Cc: James Bottomley Cc: "David S. Miller" Signed-off-by: Andrew Morton --- drivers/scsi/sun3_scsi_vme.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) diff -puN drivers/scsi/sun3_scsi_vme.c~ioremap-balanced-with-iounmap-drivers-scsi-sun3_scsi_vmec drivers/scsi/sun3_scsi_vme.c --- a/drivers/scsi/sun3_scsi_vme.c~ioremap-balanced-with-iounmap-drivers-scsi-sun3_scsi_vmec +++ a/drivers/scsi/sun3_scsi_vme.c @@ -216,8 +216,10 @@ static int sun3scsi_detect(struct scsi_h #endif instance = scsi_register (tpnt, sizeof(struct NCR5380_hostdata)); - if(instance == NULL) + if(instance == NULL) { + iounmap((void *)ioaddr); return 0; + } default_instance = instance; @@ -239,6 +241,7 @@ static int sun3scsi_detect(struct scsi_h #else printk("scsi%d: IRQ%d not free, bailing out\n", instance->host_no, instance->irq); + iounmap((void *)ioaddr); return 0; #endif } _