[OE-core] [PATCH] kernel: fix race condition between compile_kernelmodules and shared_workdir

Jens Rehsack rehsack at gmail.com
Thu Nov 12 16:13:15 UTC 2015


Fixes https://bugzilla.yoctoproject.org/show_bug.cgi?id=8127 which causes
[ 1225.089323] 8189es: Unknown symbol cfg80211_scan_done (err -22)
[ 1225.095916] 8189es: no symbol version for cfg80211_remain_on_channel_expired
when loading external compiled 8189es module.

Signed-off-by: Jens Rehsack <sno at netbsd.org>
---
 meta/classes/kernel.bbclass      | 8 ++++++++
 meta/classes/module-base.bbclass | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 5e8b6cf..b75a462 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -217,6 +217,14 @@ do_compile_kernelmodules() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
 		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+
+		# Module.symvers gets updated during the 
+		# building of the kernel modules. We need to
+		# update this in the shared workdir since some
+		# external kernel modules has a dependency on
+		# other kernel modules and will look at this
+		# file to do symbol lookups
+		cp Module.symvers ${STAGING_KERNEL_BUILDDIR}/
 	else
 		bbnote "no modules to compile"
 	fi
diff --git a/meta/classes/module-base.bbclass b/meta/classes/module-base.bbclass
index 8be26c4..cf4b02e 100644
--- a/meta/classes/module-base.bbclass
+++ b/meta/classes/module-base.bbclass
@@ -1,7 +1,7 @@
 inherit kernel-arch
 
 # This is instead of DEPENDS = "virtual/kernel"
-do_configure[depends] += "virtual/kernel:do_shared_workdir"
+do_configure[depends] += "virtual/kernel:do_compile_kernelmodules"
 
 export OS = "${TARGET_OS}"
 export CROSS_COMPILE = "${TARGET_PREFIX}"
-- 
2.4.9 (Apple Git-60)

Since 2.0 is out without any such a patch - which leaves probably lots of people with broken modules
after upgrading to jethro, please use such a patch (optimized for not waiting when no 3rd party modules
are involved) - which hopefully avoids Bruce's performance issue and fixes the race condition.

Cheers
-- 
Jens Rehsack - rehsack at gmail.com




More information about the Openembedded-core mailing list