[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