summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone/service_harddrake
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone/service_harddrake')
-rwxr-xr-xperl-install/standalone/service_harddrake5
1 files changed, 4 insertions, 1 deletions
diff --git a/perl-install/standalone/service_harddrake b/perl-install/standalone/service_harddrake
index 643aaa62a..77616c0de 100755
--- a/perl-install/standalone/service_harddrake
+++ b/perl-install/standalone/service_harddrake
@@ -140,9 +140,12 @@ foreach my $hw_class (@harddrake::data::tree) {
$modules_conf->write;
next;
} elsif (member($Ident, qw(AGP ATA_STORAGE DVB SATA_STORAGE SCSI_CONTROLLER TV))) {
- $modules_conf->remove_module(difference2([ uniq(map { $_->{driver} } values %$oldconfig) ], [ uniq(map { $_->{driver} } values %ID) ]));
+ my @old_drivers = uniq(map { $_->{driver} } values %$oldconfig);
+ my @new_drivers = uniq(map { $_->{driver} } values %ID);
+ $modules_conf->remove_module(difference2(\@old_drivers, \@new_drivers));
# add agpgart and the like modules to modprobe.preload if needed:
$modules_conf->write;
+ modules::load(difference2(\@new_drivers, \@old_drivers));
next;
} elsif ($Ident eq "PCMCIA_CONTROLLER") {
harddrake::autoconf::pcmcia(keys %ID ? first(values(%ID))->{driver} : '');