]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] region change for dmascc.c hamradio driver
authorRusty Russell <rusty@rustcorp.com.au>
Thu, 5 Dec 2002 13:55:22 +0000 (05:55 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Thu, 5 Dec 2002 13:55:22 +0000 (05:55 -0800)
From:  william stinson <wstinson@wanadoo.fr>

          1) remove one call to check_region using request_region instead
          2) release allocated region resource in case of error.

drivers/net/hamradio/dmascc.c

index b8d04451e34faf071a13a6e8dad7eeda2a3494be..fb380f7a430bd8e397a937434cb019ecc301227d 100644 (file)
@@ -400,7 +400,7 @@ int __init dmascc_init(void) {
     /* Check valid I/O address regions */
     for (i = 0; i < hw[h].num_devs; i++)
       if (base[i]) {
-       if (check_region(base[i], hw[h].io_size))
+       if (!request_region(base[i], hw[h].io_size, "dmascc"))
          base[i] = 0;
        else {
          tcmd[i] = base[i] + hw[h].tmr_offset + TMR_CTRL;
@@ -446,11 +446,12 @@ int __init dmascc_init(void) {
     /* Evaluate measurements */
     for (i = 0; i < hw[h].num_devs; i++)
       if (base[i]) {
-       if (delay[i] >= 9 && delay[i] <= 11) {
-         /* Ok, we have found an adapter */
-         if (setup_adapter(base[i], h, n) == 0)
-           n++;
-       }
+       if ((delay[i] >= 9 && delay[i] <= 11)&& 
+           /* Ok, we have found an adapter */
+           (setup_adapter(base[i], h, n) == 0))
+         n++;
+       else
+         release_region(base[i], hw[h].io_size);
       }
 
   } /* NUM_TYPES */
@@ -606,7 +607,6 @@ int __init setup_adapter(int card_base, int type, int n) {
     rtnl_unlock();
   }
 
-  request_region(card_base, hw[type].io_size, "dmascc");
 
   info->next = first;
   first = info;