]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel: fix race condition between compile_kernelmodules and shared_workdir
authorJens Rehsack <rehsack@gmail.com>
Thu, 12 Nov 2015 16:13:15 +0000 (17:13 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 24 Nov 2015 15:49:18 +0000 (15:49 +0000)
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>
meta/classes/kernel.bbclass
meta/classes/module-base.bbclass

index 5e8b6cf343181a022b2bbd29766800e6d1061e5c..b75a4621807a2a4ecee0a1c0fdf8010c8c56f854 100644 (file)
@@ -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
index 8be26c4f5e79708088c2dca7cff07a630c274b9f..cf4b02ee021c7dd5ccecd86b733f25aef4d38e1e 100644 (file)
@@ -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}"