]> git.hungrycats.org Git - linux/commitdiff
request_region cleanups from 2.4 and the kernel janitors.
authorJeff Garzik <jgarzik@rum.normnet.org>
Mon, 11 Feb 2002 20:04:17 +0000 (15:04 -0500)
committerJeff Garzik <jgarzik@rum.normnet.org>
Mon, 11 Feb 2002 20:04:17 +0000 (15:04 -0500)
Via Dave Jones.

drivers/net/arcnet/com90io.c
drivers/net/eexpress.c
drivers/net/sb1000.c

index c6401d6c497148b6c51999dadf809800198d4f6d..11a28fa4ed5ef92531d2c8a20986fa4866d461f8 100644 (file)
@@ -241,7 +241,10 @@ static int __init com90io_found(struct net_device *dev)
                return -ENODEV;
        }
        /* Reserve the I/O region - guaranteed to work by check_region */
-       request_region(dev->base_addr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)");
+       if (!request_region(dev->base_addr, ARCNET_TOTAL_SIZE, "arcnet (COM90xx-IO)")) {
+               free_irq(dev->irq, dev);
+               return -EBUSY;
+       }
 
        /* Initialize the rest of the device structure. */
        dev->priv = kmalloc(sizeof(struct arcnet_local), GFP_KERNEL);
index a039bfc504d804b42e474f3197d37167266f8600..d70d3e68fa52417ef1ac3d46921524c99f117f6e 100644 (file)
@@ -1674,7 +1674,6 @@ void cleanup_module(void)
                        unregister_netdev(dev);
                        kfree(dev->priv);
                        dev->priv = NULL;
-                       release_region(dev->base_addr, EEXP_IO_EXTENT);
                }
        }
 }
index ac5ca33b2980de977109a2c6690fb842da03e94f..55dd5e283548bd13d6fae96ede6f07328aa328bf 100644 (file)
@@ -204,7 +204,12 @@ sb1000_probe(struct net_device *dev)
                /*
                 *      Ok set it up.
                 */
-                
+               if (!request_region(ioaddr[0], 16, dev->name))
+                       continue;
+               if (!request_region(ioaddr[1], 16, dev->name)) {
+                       release_region(ioaddr[0], 16);
+                       continue;
+               }
                 
                dev->base_addr = ioaddr[0];
                /* rmem_end holds the second I/O address - fv */
@@ -262,9 +267,6 @@ sb1000_probe(struct net_device *dev)
 
                /* Lock resources */
 
-               request_region(ioaddr[0], 16, dev->name);
-               request_region(ioaddr[1], 16, dev->name);
-
                return 0;
        }
 }
@@ -962,8 +964,6 @@ sb1000_open(struct net_device *dev)
        /* rmem_end holds the second I/O address - fv */
        ioaddr[1] = dev->rmem_end;
        name = dev->name;
-       request_region(ioaddr[0], SB1000_IO_EXTENT, "sb1000");
-       request_region(ioaddr[1], SB1000_IO_EXTENT, "sb1000");
 
        /* initialize sb1000 */
        if ((status = sb1000_reset(ioaddr, name)))