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.

(From OE-Core rev: afcea61e8eb39234d336c706fdfd4680dea7c060)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jens Rehsack 2015-11-12 17:13:15 +01:00 committed by Richard Purdie
parent fecb07755c
commit a9cc27e691
2 changed files with 9 additions and 1 deletions

View 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

View 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}"