ide-cs: fix releasing I/O resources
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sun, 15 Jun 2008 19:00:23 +0000 (21:00 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sun, 15 Jun 2008 19:00:23 +0000 (21:00 +0200)
hwif content is already freed after ide_release() call so cache
hwif->io_ports.{data,ctl}_addr in local variables in ide_detach().

This fixes post-2.6.25 regression.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/legacy/ide-cs.c

index d08107db54d467b0c3e569ab744619516f7d3910..f633b6b3c7f36e92ec5f709eaab0e21c54c552e3 100644 (file)
@@ -135,13 +135,17 @@ static void ide_detach(struct pcmcia_device *link)
 {
     ide_info_t *info = link->priv;
     ide_hwif_t *hwif = info->hwif;
+    unsigned long data_addr, ctl_addr;
 
     DEBUG(0, "ide_detach(0x%p)\n", link);
 
+    data_addr = hwif->io_ports.data_addr;
+    ctl_addr  = hwif->io_ports.ctl_addr;
+
     ide_release(link);
 
-    release_region(hwif->io_ports.ctl_addr, 1);
-    release_region(hwif->io_ports.data_addr, 8);
+    release_region(ctl_addr, 1);
+    release_region(data_addr, 8);
 
     kfree(info);
 } /* ide_detach */