Fixed
Created: Sep 26, 2018
Updated: Mar 27, 2019
Resolved Date: Oct 17, 2018
Found In Version: 9.0.0.17
Fix Version: 9.0.0.18
Severity: Standard
Applicable for: Wind River Linux 9
Component/s: Kernel
When trying to program the flash with a Wind River Linux 9 platform it ran into a failure with the mei_txe kernel module. The module is load on demand.
$> modprobe mei_txe
modprobe: can't load module mei_txe (kernel/drivers/misc/mei/mei-txe.ko): Invalid argument
The stderr response is just a generic failure message as the ko does exist at that path. Inside dmesg the real failure is seen
$> dmesg
[ 3040.038695] mei_txe: no symbol version for ___preempt_schedule_notrace
[ 3040.038706] mei_txe: Unknown symbol ___preempt_schedule_notrace (err -22)
There appears to be an unresolved symbol. Upon looking at /proc/kallsyms on the target terminal that symbol does exist:
c1000fac T ___preempt_schedule_notrace
And looking at the Modules.symvers file of linux-windriver on the host machine it is found:
0x00000000 ___preempt_schedule_notrace vmlinux EXPORT_SYMBOL
The issue has to do with a modversion check that is failing and causing the module to not be loaded, it is addressed upstream by patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=faaae2a581435f32781a105dda3501df388fddcb
which ignores the warning and loads the modules
Subject: [PATCH] This patch allows for missing symbol CRC information in order
to work around the issue that newer binutils versions seem to occasionally drop the
CRC on the floor. binutils 2.26 seems to work fine, while binutils 2.27 seems to
break MODVERSIONS of symbols that have been defined in assembler files.
The issue has to do with a modversion check that is failing and causing the module to not be loaded, it is addressed upstream by patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=faaae2a581435f32781a105dda3501df388fddcb
which ignores the warning and loads the modules
Subject: [PATCH] This patch allows for missing symbol CRC information in order
to work around the issue that newer binutils versions seem to occasionally drop the
CRC on the floor. binutils 2.26 seems to work fine, while binutils 2.27 seems to
break MODVERSIONS of symbols that have been defined in assembler files.