Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Jul 2011 23:47:03 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r223917 - head/etc/rc.d
Message-ID:  <201107102347.p6ANl3qK066321@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107102347.p6ANl3qK066321>