aboutsummaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorJens Rehsack <rehsack@gmail.com>2015-11-12 17:13:15 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-11-24 15:49:18 +0000
commitafcea61e8eb39234d336c706fdfd4680dea7c060 (patch)
tree22b88b2a497332ea961cfb064317ba1d3ede034a /meta
parent99203fbe5ad470ef65cff93cec9d7f332883b5ee (diff)
downloadopenembedded-core-contrib-afcea61e8eb39234d336c706fdfd4680dea7c060.tar.gz
kernel: fix race condition between compile_kernelmodules and shared_workdir
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@netbsd.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/kernel.bbclass8
-rw-r--r--meta/classes/module-base.bbclass2
2 files changed, 9 insertions, 1 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 5e8b6cf343..b75a462180 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 8be26c4f5e..cf4b02ee02 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}"