Author: dougb
Date: Sun Jul 10 23:47:03 2011
New Revision: 223917
URL: http://svn.freebsd.org/changeset/base/223917

Log:
  Make sure we load kernel modules from the same path as the running kernel

Modified:
  head/etc/rc.d/kld

Modified: head/etc/rc.d/kld
==============================================================================
--- head/etc/rc.d/kld   Sun Jul 10 22:09:53 2011        (r223916)
+++ head/etc/rc.d/kld   Sun Jul 10 23:47:03 2011        (r223917)
@@ -41,11 +41,24 @@ kld_start()
 {
        [ -n "$kld_list" ] || return
 
-       local _kld
+       local _kernel_path _module_path _kld _path
+
+       _kernel_path=`$SYSCTL_N kern.bootfile`
+       _kernel_path="${_kernel_path%/*}"
+
+       _module_path=`$SYSCTL_N kern.module_path`
+       _module_path="${_module_path#*\;}"
+       _module_path="$_kernel_path `ltr $_module_path \; ' '`"
 
        echo 'Loading kernel modules:'
        for _kld in $kld_list ; do
-               load_kld -e ${_kld}.ko $_kld
+               for _path in $_module_path ; do
+                       if [ -x "${_path}/${_kld}.ko" ]; then
+                               load_kld -e ${_kld}.ko ${_path}/${_kld}.ko
+                               continue 2
+                       fi
+               done
+               warn "${_kld}.ko not found in $_module_path"
        done
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to