Use modprobe -a and a bash PE to filter the MODULES array. Signed-off-by: Dave Reisner <d@falconindy.com> --- rc.sysinit | 12 ++++-------- 1 files changed, 4 insertions(+), 8 deletions(-) diff --git a/rc.sysinit b/rc.sysinit index 09d5e97..4b6e1e7 100755 --- a/rc.sysinit +++ b/rc.sysinit @@ -92,14 +92,10 @@ if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then fi # Load modules from the MODULES array defined in rc.conf -if [[ $load_modules != off && -f /proc/modules ]]; then - stat_busy "Loading Modules" - for mod in "${MODULES[@]}"; do - if [[ $mod = ${mod#!} ]]; then - /sbin/modprobe $mod - fi - done - stat_done +if [[ $load_modules != off && -f /proc/modules ]] && (( ${#MODULES[@]} > 0 )); then + stat_busy "Loading Modules" + /sbin/modprobe -a "${MODULES[@]/#\!*/}" + stat_done fi # Wait for udev uevents -- 1.7.2.3