]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] check_region elimination
authorRusty Russell <rusty@rustcorp.com.au>
Wed, 22 May 2002 05:24:41 +0000 (22:24 -0700)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Wed, 22 May 2002 05:24:41 +0000 (22:24 -0700)
johnpol@2ka.mipt.ru: 18) request_region check, 11-20:
  here is one more trivial check.

  So please test and apply.

   Evgeniy Polyakov ( s0mbre )

drivers/atm/horizon.c

index 1600876212ee1637f1cd5cc03647435bd9b0aeca..caedfdfc16cd55f8d80db28df3c14cab0bd347ee 100644 (file)
@@ -2765,15 +2765,13 @@ static int __init hrz_probe (void) {
     u32 * membase = bus_to_virt (pci_resource_start (pci_dev, 1));
     u8 irq = pci_dev->irq;
     
-    // check IO region
-    if (check_region (iobase, HRZ_IO_EXTENT)) {
-      PRINTD (DBG_WARN, "IO range already in use");
-      continue;
-    }
+    /* XXX DEV_LABEL is a guess */
+    if (!request_region (iobase, HRZ_IO_EXTENT, DEV_LABEL))
+         continue;
 
     if (pci_enable_device (pci_dev))
       continue;
-
+    
     dev = kmalloc (sizeof(hrz_dev), GFP_KERNEL);
     if (!dev) {
       // perhaps we should be nice: deregister all adapters and abort?
@@ -2807,9 +2805,6 @@ static int __init hrz_probe (void) {
        dev->atm_dev->dev_data = (void *) dev;
        dev->pci_dev = pci_dev; 
        
-       /* XXX DEV_LABEL is a guess */
-       request_region (iobase, HRZ_IO_EXTENT, DEV_LABEL);
-       
        // enable bus master accesses
        pci_set_master (pci_dev);
        
@@ -2901,8 +2896,10 @@ static int __init hrz_probe (void) {
        atm_dev_deregister (dev->atm_dev);
       } /* atm_dev_register */
       free_irq (irq, dev);
+       
     } /* request_irq */
     kfree (dev);
+    release_region(iobase, HRZ_IO_EXTENT);
   } /* kmalloc and while */
   return devs;
 }