From a008ac30cf08a160d5d3f042c1dd7f3375f3e880 Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Fri, 22 Feb 2008 11:48:16 +0000 Subject: sort modules according to /proc/modules when removing conflicting modules to handle module deps nicely --- lib/network/ndiswrapper.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/network') diff --git a/lib/network/ndiswrapper.pm b/lib/network/ndiswrapper.pm index 2940dbc..3bf7bd3 100644 --- a/lib/network/ndiswrapper.pm +++ b/lib/network/ndiswrapper.pm @@ -85,7 +85,8 @@ Do you really want to use a ndiswrapper driver?", $conflicts[0]->{drivers}[0])) #- stop old interfaces network::tools::stop_interface($_->{interface}, 0) foreach grep { defined $_->{interface} } @conflicts; #- unload old modules before trying to load ndiswrapper - my @drivers = map { @{$_->{drivers}} } @conflicts; + #- (sorted according to /proc/modules to handle deps nicely) + my @drivers = intersection([ modules::loaded_modules() ], [ map { @{$_->{drivers}} } @conflicts ]); eval { modules::unload($_) } foreach @drivers; } -- cgit v1.2.1