diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/pcmcia/tcic.c linux-2.5/drivers/pcmcia/tcic.c
--- bk-linus/drivers/pcmcia/tcic.c	2002-11-21 02:17:31.000000000 +0000
+++ linux-2.5/drivers/pcmcia/tcic.c	2002-11-21 18:00:14.000000000 +0000
@@ -394,7 +394,11 @@ static int __init init_tcic(void)
     printk(KERN_INFO "Databook TCIC-2 PCMCIA probe: ");
     sock = 0;
 
-    if (check_region(tcic_base, 16) == 0) {
+    if (!request_region(tcic_base, 16, "tcic-2")) {
+	printk("could not allocate ports,\n ");
+	return -ENODEV;
+    }
+    else {
 	tcic_setw(TCIC_ADDR, 0);
 	if (tcic_getw(TCIC_ADDR) == 0) {
 	    tcic_setw(TCIC_ADDR, 0xc3a5);
@@ -410,16 +414,13 @@ static int __init init_tcic(void)
 		if (tcic_getw(TCIC_ADDR) == 0xc3a5) sock = 2;
 	    }
 	}
-    } else
-	printk("could not allocate ports, ");
-
+    }
     if (sock == 0) {
 	printk("not found.\n");
+	release_region(tcic_base, 16);
 	return -ENODEV;
     }
 
-    request_region(tcic_base, 16, "tcic-2");
-
     sockets = 0;
     for (i = 0; i < sock; i++) {
 	if ((i == ignore) || is_active(i)) continue;
