我只是在编写一个 Linux 内核模块并收到一条警告消息,表明我的内核已被污染:
[ 1194.552013] ------------[ cut here ]------------
[ 1194.552639] WARNING: CPU: 0 PID: 176 at /build/linux-mcJ30I/linux-3.16.7-ckt20/block/blk.h:231 generic_make_request_checks+0x46a/0x480()
[ 1194.552639] Modules linked in: <my kernel muldule>(O) <various other Standard kernel modules>
[ 1194.552639] CPU: 0 PID: 176 Comm: systemd-udevd Tainted: G O 3.16.0-4-586 #1 Debian 3.16.7-ckt20-1+deb8u1
[ 1194.552639] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
[ 1194.552639] ebeb3b70 ebeb3b70 c103bf71 c14f2d68 00000000 000000b0 c1520644 000000e7
[ 1194.552639] c11ddd1a 000000e7 c11ddd1a ec0d4800 edcb5c00 ffffffff ebeb3b80 c103c032
[ 1194.552639] 00000009 00000000 ebeb3bf8 c11ddd1a 06010006 000001a7 00000000 00000000
[ 1194.552639] Call Trace:
[ 1194.552639] [<c103bf71>] ? warn_slowpath_common+0x81/0xa0
[ 1194.552639] [<c11ddd1a>] ? generic_make_request_checks+0x46a/0x480
[ 1194.552639] [<c11ddd1a>] ? generic_make_request_checks+0x46a/0x480
...
该消息只出现一次,我的模块正在正常工作,我没有收到任何 Oops 消息或内核 Panic 或类似消息。
我阅读了几个问题、答案和教程(此处、此处或此处),但基本上我发现的只是当前运行的内核不受社区(不再)支持并且无法被社区调试。对我来说,这很明显,因为我的内核模块已安装并且他们没有它的来源。
所以对我来说,这条警告信息似乎没有什么危险,对吗?我已经尝试了几个小时来查找错误,但我没有找到。那么消息是否只是因为我正在使用我的内核模块而出现?
编辑:我不知道这是否重要,但我正在运行 Linux 内核 3.16.0-4-586