Changeset 5433

Show
Ignore:
Timestamp:
11/26/08 15:52:07 (1 month ago)
Author:
khali
Message:

Unload kernel drivers which we loaded ourselves when we are done with them.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lm-sensors/branches/lm-sensors-3.0.0/CHANGES

    r5432 r5433  
    2626                  Improve GL525SM detection a bit 
    2727                  Let kernel 2.6.28 and later handle chips aliases 
     28                  Unload kernel drivers when we are done with them (#2329) 
    2829 
    29303.0.3 (2008-09-28) 
  • lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect

    r5432 r5433  
    22912291########### 
    22922292 
    2293 use vars qw(%modules_list %modules_supported); 
     2293use vars qw(%modules_list %modules_supported @modules_we_loaded); 
    22942294 
    22952295sub initialize_modules_list 
     
    23082308    $modules_supported{$chip->{driver}}++; 
    23092309  } 
     2310} 
     2311 
     2312sub unload_modules 
     2313{ 
     2314        return unless @modules_we_loaded; 
     2315 
     2316        # Attempt to unload all kernel drivers we loaded ourselves 
     2317        while (my $module = pop @modules_we_loaded) { 
     2318                print "Unloading $module... "; 
     2319                system("modprobe -r $module 2> /dev/null"); 
     2320                if (($? >> 8) == 0) { 
     2321                        print "OK\n"; 
     2322                } else { 
     2323                        print "failed\n"; 
     2324                } 
     2325        } 
     2326        print "\n"; 
    23102327} 
    23112328 
     
    53385355          } else { 
    53395356            print "Module loaded successfully.\n"; 
     5357            push @modules_we_loaded, $adapter; 
     5358            $modules_list{$adapter} = 1; 
    53405359          } 
    53415360        } 
     
    53575376    } else { 
    53585377      print "Module loaded successfully.\n"; 
     5378      push @modules_we_loaded, "i2c-dev"; 
     5379      $modules_list{"i2c-dev"} = 1; 
    53595380    } 
    53605381    print "\n"; 
     
    55905611          "modules are loaded.\n\n"; 
    55915612  } 
    5592 
     5613 
     5614  unload_modules(); 
     5615
     5616 
     5617sub cleanup_on_int 
     5618
     5619  print "\n"; 
     5620  unload_modules(); 
     5621  exit; 
     5622
     5623 
     5624$SIG{INT} = \&cleanup_on_int; 
    55935625 
    55945626main;