sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/admin-guide/tainted-kernelsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/pt_BR/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/admin-guide/tainted-kernelsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hTainted kernelsh]hTainted kernels}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/admin-guide/tainted-kernels.rsthKubh paragraph)}(hXThe kernel will mark itself as 'tainted' when something occurs that might be relevant later when investigating problems. Don't worry too much about this, most of the time it's not a problem to run a tainted kernel; the information is mainly of interest once someone wants to investigate some problem, as its real cause might be the event that got the kernel tainted. That's why bug reports from tainted kernels will often be ignored by developers, hence try to reproduce problems with an untainted kernel.h]hXThe kernel will mark itself as ‘tainted’ when something occurs that might be relevant later when investigating problems. Don’t worry too much about this, most of the time it’s not a problem to run a tainted kernel; the information is mainly of interest once someone wants to investigate some problem, as its real cause might be the event that got the kernel tainted. That’s why bug reports from tainted kernels will often be ignored by developers, hence try to reproduce problems with an untainted kernel.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXNote the kernel will remain tainted even after you undo what caused the taint (i.e. unload a proprietary kernel module), to indicate the kernel remains not trustworthy. That's also why the kernel will print the tainted state when it notices an internal problem (a 'kernel bug'), a recoverable error ('kernel oops') or a non-recoverable error ('kernel panic') and writes debug information about this to the logs ``dmesg`` outputs. It's also possible to check the tainted state at runtime through a file in ``/proc/``.h](hXNote the kernel will remain tainted even after you undo what caused the taint (i.e. unload a proprietary kernel module), to indicate the kernel remains not trustworthy. That’s also why the kernel will print the tainted state when it notices an internal problem (a ‘kernel bug’), a recoverable error (‘kernel oops’) or a non-recoverable error (‘kernel panic’) and writes debug information about this to the logs }(hhhhhNhNubhliteral)}(h ``dmesg``h]hdmesg}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubhW outputs. It’s also possible to check the tainted state at runtime through a file in }(hhhhhNhNubh)}(h ``/proc/``h]h/proc/}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhubh.}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(h-Tainted flag in bugs, oops or panics messagesh]h-Tainted flag in bugs, oops or panics messages}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hYou find the tainted state near the top in a line starting with 'CPU:'; if or why the kernel was tainted is shown after the Process ID ('PID:') and a shortened name of the command ('Comm:') that triggered the event::h]hYou find the tainted state near the top in a line starting with ‘CPU:’; if or why the kernel was tainted is shown after the Process ID (‘PID:’) and a shortened name of the command (‘Comm:’) that triggered the event:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh literal_block)}(hXBUG: unable to handle kernel NULL pointer dereference at 0000000000000000 Oops: 0002 [#1] SMP PTI CPU: 0 PID: 4424 Comm: insmod Tainted: P W O 4.20.0-0.rc6.fc30 #1 Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 RIP: 0010:my_oops_init+0x13/0x1000 [kpanic] [...]h]hXBUG: unable to handle kernel NULL pointer dereference at 0000000000000000 Oops: 0002 [#1] SMP PTI CPU: 0 PID: 4424 Comm: insmod Tainted: P W O 4.20.0-0.rc6.fc30 #1 Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 RIP: 0010:my_oops_init+0x13/0x1000 [kpanic] [...]}hj0sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1j.hhhKhjhhubh)}(hYou'll find a 'Not tainted: ' there if the kernel was not tainted at the time of the event; if it was, then it will print 'Tainted: ' and characters either letters or blanks. In the example above it looks like this::h]hYou’ll find a ‘Not tainted: ‘ there if the kernel was not tainted at the time of the event; if it was, then it will print ‘Tainted: ‘ and characters either letters or blanks. In the example above it looks like this:}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjhhubj/)}(hTainted: P W Oh]hTainted: P W O}hjNsbah}(h]h ]h"]h$]h&]j>j?uh1j.hhhK'hjhhubh)}(hXThe meaning of those characters is explained in the table below. In this case the kernel got tainted earlier because a proprietary Module (``P``) was loaded, a warning occurred (``W``), and an externally-built module was loaded (``O``). To decode other letters use the table below.h](hThe meaning of those characters is explained in the table below. In this case the kernel got tainted earlier because a proprietary Module (}(hj\hhhNhNubh)}(h``P``h]hP}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubh") was loaded, a warning occurred (}(hj\hhhNhNubh)}(h``W``h]hW}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubh.), and an externally-built module was loaded (}(hj\hhhNhNubh)}(h``O``h]hO}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj\ubh/). To decode other letters use the table below.}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjhhubeh}(h],tainted-flag-in-bugs-oops-or-panics-messagesah ]h"]-tainted flag in bugs, oops or panics messagesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h!Decoding tainted state at runtimeh]h!Decoding tainted state at runtime}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK0ubh)}(hXAt runtime, you can query the tainted state by reading ``cat /proc/sys/kernel/tainted``. If that returns ``0``, the kernel is not tainted; any other number indicates the reasons why it is. The easiest way to decode that number is the script ``tools/debugging/kernel-chktaint``, which your distribution might ship as part of a package called ``linux-tools`` or ``kernel-tools``; if it doesn't, you can download the script from `git.kernel.org `_ and execute it with ``sh kernel-chktaint``, which would print something like this on the machine that had the statements in the logs that were quoted earlier::h](h7At runtime, you can query the tainted state by reading }(hjhhhNhNubh)}(h ``cat /proc/sys/kernel/tainted``h]hcat /proc/sys/kernel/tainted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh. If that returns }(hjhhhNhNubh)}(h``0``h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh, the kernel is not tainted; any other number indicates the reasons why it is. The easiest way to decode that number is the script }(hjhhhNhNubh)}(h#``tools/debugging/kernel-chktaint``h]htools/debugging/kernel-chktaint}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhA, which your distribution might ship as part of a package called }(hjhhhNhNubh)}(h``linux-tools``h]h linux-tools}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh or }(hjhhhNhNubh)}(h``kernel-tools``h]h kernel-tools}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh4; if it doesn’t, you can download the script from }(hjhhhNhNubh reference)}(h|`git.kernel.org `_h]hgit.kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]namegit.kernel.orgrefurihhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/tools/debugging/kernel-chktaintuh1jhjubhtarget)}(hk h]h}(h]git-kernel-orgah ]h"]git.kernel.orgah$]h&]refurij.uh1j/ referencedKhjubh and execute it with }(hjhhhNhNubh)}(h``sh kernel-chktaint``h]hsh kernel-chktaint}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubht, which would print something like this on the machine that had the statements in the logs that were quoted earlier:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjhhubj/)}(hXKernel is Tainted for following reasons: * Proprietary module was loaded (#0) * Kernel issued warning (#9) * Externally-built ('out-of-tree') module was loaded (#12) See Documentation/admin-guide/tainted-kernels.rst in the Linux kernel or https://www.kernel.org/doc/html/latest/admin-guide/tainted-kernels.html for a more details explanation of the various taint flags. Raw taint value as int/string: 4609/'P W O 'h]hXKernel is Tainted for following reasons: * Proprietary module was loaded (#0) * Kernel issued warning (#9) * Externally-built ('out-of-tree') module was loaded (#12) See Documentation/admin-guide/tainted-kernels.rst in the Linux kernel or https://www.kernel.org/doc/html/latest/admin-guide/tainted-kernels.html for a more details explanation of the various taint flags. Raw taint value as int/string: 4609/'P W O '}hj[sbah}(h]h ]h"]h$]h&]j>j?uh1j.hhhK>($i-1)&1));doneh]h[$ for i in $(seq 20); do echo $(($i-1)) $(($(cat /proc/sys/kernel/tainted)>>($i-1)&1));done}hjwsbah}(h]h ]h"]h$]h&]j>j?uh1j.hhhKMhjhhubeh}(h]!decoding-tainted-state-at-runtimeah ]h"]!decoding tainted state at runtimeah$]h&]uh1hhhhhhhhK0ubh)}(hhh](h)}(h Table for decoding tainted stateh]h Table for decoding tainted state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKPubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK8uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hBith]hBit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hLogh]hLog}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNumberh]hNumber}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h"Reason that got the kernel taintedh]h"Reason that got the kernel tainted}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj#ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(h0h]h0}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjNubah}(h]h ]h"]h$]h&]uh1jhjKubj)}(hhh]h)}(hG/Ph]hG/P}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjeubah}(h]h ]h"]h$]h&]uh1jhjKubj)}(hhh]h)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhj|ubah}(h]h ]h"]h$]h&]uh1jhjKubj)}(hhh]h)}(hproprietary module was loadedh]hproprietary module was loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Fh]h_/F}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hmodule was force loadedh]hmodule was force loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKVhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(hjh]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Sh]h_/S}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj-ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4h]h4}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjDubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0kernel running on an out of specification systemh]h0kernel running on an out of specification system}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj[ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h3h]h3}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhj{ubah}(h]h ]h"]h$]h&]uh1jhjxubj)}(hhh]h)}(h_/Rh]h_/R}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjxubj)}(hhh]h)}(h8h]h8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjxubj)}(hhh]h)}(hmodule was force unloadedh]hmodule was force unloaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjxubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(hjIh]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Mh]h_/M}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h16h]h16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2processor reported a Machine Check Exception (MCE)h]h2processor reported a Machine Check Exception (MCE)}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h5h]h5}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjDubah}(h]h ]h"]h$]h&]uh1jhjAubj)}(hhh]h)}(h_/Bh]h_/B}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhj[ubah}(h]h ]h"]h$]h&]uh1jhjAubj)}(hhh]h)}(h32h]h32}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjrubah}(h]h ]h"]h$]h&]uh1jhjAubj)}(hhh]h)}(h1bad page referenced or some unexpected page flagsh]h1bad page referenced or some unexpected page flags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h6h]h6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Uh]h_/U}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h64h]h64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h(taint requested by userspace applicationh]h(taint requested by userspace application}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h_/Dh]h_/D}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj%ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h128h]h128}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj<ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h3kernel died recently, i.e. there was an OOPS or BUGh]h3kernel died recently, i.e. there was an OOPS or BUG}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjSubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(hjh]h8}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjsubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(h_/Ah]h_/A}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(h256h]h256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjpubj)}(hhh]h)}(hACPI table overridden by userh]hACPI table overridden by user}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhjpubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h9h]h9}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Wh]h_/W}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h512h]h512}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hkernel issued warningh]hkernel issued warning}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h10h]h10}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj<ubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hhh]h)}(h_/Ch]h_/C}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjSubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hhh]h)}(h1024h]h1024}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjjubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hhh]h)}(hstaging driver was loadedh]hstaging driver was loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h11h]h11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Ih]h_/I}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2048h]h2048}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h/workaround for bug in platform firmware appliedh]h/workaround for bug in platform firmware applied}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h12h]h12}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Oh]h_/O}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4096h]h4096}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahj4ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2externally-built ("out-of-tree") module was loadedh]h6externally-built (“out-of-tree”) module was loaded}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjKubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h13h]h13}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjkubah}(h]h ]h"]h$]h&]uh1jhjhubj)}(hhh]h)}(h_/Eh]h_/E}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjhubj)}(hhh]h)}(h8192h]h8192}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjhubj)}(hhh]h)}(hunsigned module was loadedh]hunsigned module was loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h14h]h14}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Lh]h_/L}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h16384h]h16384}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hsoft lockup occurredh]hsoft lockup occurred}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h15h]h15}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhj5 ubah}(h]h ]h"]h$]h&]uh1jhj2 ubj)}(hhh]h)}(h_/Kh]h_/K}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjL ubah}(h]h ]h"]h$]h&]uh1jhj2 ubj)}(hhh]h)}(h32768h]h32768}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjc ubah}(h]h ]h"]h$]h&]uh1jhj2 ubj)}(hhh]h)}(hkernel has been live patchedh]hkernel has been live patched}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjz ubah}(h]h ]h"]h$]h&]uh1jhj2 ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h16h]h16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h_/Xh]h_/X}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h65536h]h65536}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h0auxiliary taint, defined for and used by distrosh]h0auxiliary taint, defined for and used by distros}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h17h]h17}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h_/Th]h_/T}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h131072h]h131072}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj- ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h5kernel was built with the struct randomization pluginh]h5kernel was built with the struct randomization plugin}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjD ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h18h]h18}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjd ubah}(h]h ]h"]h$]h&]uh1jhja ubj)}(hhh]h)}(h_/Nh]h_/N}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj{ ubah}(h]h ]h"]h$]h&]uh1jhja ubj)}(hhh]h)}(h262144h]h262144}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj ubah}(h]h ]h"]h$]h&]uh1jhja ubj)}(hhh]h)}(han in-kernel test has been runh]han in-kernel test has been run}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj ubah}(h]h ]h"]h$]h&]uh1jhja ubeh}(h]h ]h"]h$]h&]uh1jhjHubj)}(hhh](j)}(hhh]h)}(h19h]h19}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h_/Jh]h_/J}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h524288h]h524288}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h2userspace used a mutating debug operation in fwctlh]h2userspace used a mutating debug operation in fwctl}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1jFhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hWNote: The character ``_`` is representing a blank in this table to make reading easier.h](hNote: The character }(hj> hhhNhNubh)}(h``_``h]h_}(hjF hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj> ubh> is representing a blank in this table to make reading easier.}(hj> hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKkhjhhubeh}(h] table-for-decoding-tainted-stateah ]h"] table for decoding tainted stateah$]h&]uh1hhhhhhhhKPubh)}(hhh](h)}(h&More detailed explanation for taintingh]h&More detailed explanation for tainting}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf hhhhhKoubh block_quote)}(hXK0) ``G`` if all modules loaded have a GPL or compatible license, ``P`` if any proprietary module has been loaded. Modules without a MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by insmod as GPL compatible are assumed to be proprietary. 1) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all modules were loaded normally. 2) ``S`` if the kernel is running on a processor or system that is out of specification: hardware has been put into an unsupported configuration, therefore proper execution cannot be guaranteed. Kernel will be tainted if, for example: - on x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) which do not report PAE but may have a functional implementation, an SMP kernel is running on non officially capable SMP Athlon CPUs, MSRs are being poked at from userspace. - on arm: kernel running on certain CPUs (such as Keystone 2) without having certain kernel features enabled. - on arm64: there are mismatched hardware features between CPUs, the bootloader has booted CPUs in different modes. - certain drivers are being used on non supported architectures (such as scsi/snic on something else than x86_64, scsi/ips on non x86/x86_64/itanium, have broken firmware settings for the irqchip/irq-gic on arm64 ...). - x86/x86_64: Microcode late loading is dangerous and will result in tainting the kernel. It requires that all CPUs rendezvous to make sure the update happens when the system is as quiescent as possible. However, a higher priority MCE/SMI/NMI can move control flow away from that rendezvous and interrupt the update, which can be detrimental to the machine. 3) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all modules were unloaded normally. 4) ``M`` if any processor has reported a Machine Check Exception, ``' '`` if no Machine Check Exceptions have occurred. 5) ``B`` If a page-release function has found a bad page reference or some unexpected page flags. This indicates a hardware problem or a kernel bug; there should be other information in the log indicating why this tainting occurred. 6) ``U`` if a user or user application specifically requested that the Tainted flag be set, ``' '`` otherwise. 7) ``D`` if the kernel has died recently, i.e. there was an OOPS or BUG. 8) ``A`` if an ACPI table has been overridden. 9) ``W`` if a warning has previously been issued by the kernel. (Though some warnings may set more specific taint flags.) 10) ``C`` if a staging driver has been loaded. 11) ``I`` if the kernel is working around a severe bug in the platform firmware (BIOS or similar). 12) ``O`` if an externally-built ("out-of-tree") module has been loaded. 13) ``E`` if an unsigned module has been loaded in a kernel supporting module signature. 14) ``L`` if a soft lockup has previously occurred on the system. 15) ``K`` if the kernel has been live patched. 16) ``X`` Auxiliary taint, defined for and used by Linux distributors. 17) ``T`` Kernel was build with the randstruct plugin, which can intentionally produce extremely unusual kernel structure layouts (even performance pathological ones), which is important to know when debugging. Set at build time. 18) ``N`` if an in-kernel test, such as a KUnit test, has been run. 19) ``J`` if userspace opened /dev/fwctl/* and performed a FWTCL_RPC_DEBUG_WRITE to use the devices debugging features. Device debugging features could cause the device to malfunction in undefined ways.h]henumerated_list)}(hhh](h list_item)}(h``G`` if all modules loaded have a GPL or compatible license, ``P`` if any proprietary module has been loaded. Modules without a MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by insmod as GPL compatible are assumed to be proprietary. h]h)}(h``G`` if all modules loaded have a GPL or compatible license, ``P`` if any proprietary module has been loaded. Modules without a MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by insmod as GPL compatible are assumed to be proprietary.h](h)}(h``G``h]hG}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh9 if all modules loaded have a GPL or compatible license, }(hj hhhNhNubh)}(h``P``h]hP}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh if any proprietary module has been loaded. Modules without a MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by insmod as GPL compatible are assumed to be proprietary.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKqhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hd``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all modules were loaded normally. h]h)}(hc``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all modules were loaded normally.h](h)}(h``F``h]hF}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh# if any module was force loaded by }(hj hhhNhNubh)}(h ``insmod -f``h]h insmod -f}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh, }(hj hhhNhNubh)}(h``' '``h]h' '}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh% if all modules were loaded normally.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKvhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hX``S`` if the kernel is running on a processor or system that is out of specification: hardware has been put into an unsupported configuration, therefore proper execution cannot be guaranteed. Kernel will be tainted if, for example: - on x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) which do not report PAE but may have a functional implementation, an SMP kernel is running on non officially capable SMP Athlon CPUs, MSRs are being poked at from userspace. - on arm: kernel running on certain CPUs (such as Keystone 2) without having certain kernel features enabled. - on arm64: there are mismatched hardware features between CPUs, the bootloader has booted CPUs in different modes. - certain drivers are being used on non supported architectures (such as scsi/snic on something else than x86_64, scsi/ips on non x86/x86_64/itanium, have broken firmware settings for the irqchip/irq-gic on arm64 ...). - x86/x86_64: Microcode late loading is dangerous and will result in tainting the kernel. It requires that all CPUs rendezvous to make sure the update happens when the system is as quiescent as possible. However, a higher priority MCE/SMI/NMI can move control flow away from that rendezvous and interrupt the update, which can be detrimental to the machine. h](h)}(h``S`` if the kernel is running on a processor or system that is out of specification: hardware has been put into an unsupported configuration, therefore proper execution cannot be guaranteed. Kernel will be tainted if, for example:h](h)}(h``S``h]hS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh if the kernel is running on a processor or system that is out of specification: hardware has been put into an unsupported configuration, therefore proper execution cannot be guaranteed. Kernel will be tainted if, for example:}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKyhj ubh bullet_list)}(hhh](j )}(hon x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) which do not report PAE but may have a functional implementation, an SMP kernel is running on non officially capable SMP Athlon CPUs, MSRs are being poked at from userspace.h]h)}(hon x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) which do not report PAE but may have a functional implementation, an SMP kernel is running on non officially capable SMP Athlon CPUs, MSRs are being poked at from userspace.h]hon x86: PAE is forced through forcepae on intel CPUs (such as Pentium M) which do not report PAE but may have a functional implementation, an SMP kernel is running on non officially capable SMP Athlon CPUs, MSRs are being poked at from userspace.}(hj/ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hj+ ubah}(h]h ]h"]h$]h&]uh1j hj( ubj )}(hkon arm: kernel running on certain CPUs (such as Keystone 2) without having certain kernel features enabled.h]h)}(hkon arm: kernel running on certain CPUs (such as Keystone 2) without having certain kernel features enabled.h]hkon arm: kernel running on certain CPUs (such as Keystone 2) without having certain kernel features enabled.}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjC ubah}(h]h ]h"]h$]h&]uh1j hj( ubj )}(hqon arm64: there are mismatched hardware features between CPUs, the bootloader has booted CPUs in different modes.h]h)}(hqon arm64: there are mismatched hardware features between CPUs, the bootloader has booted CPUs in different modes.h]hqon arm64: there are mismatched hardware features between CPUs, the bootloader has booted CPUs in different modes.}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj[ ubah}(h]h ]h"]h$]h&]uh1j hj( ubj )}(hcertain drivers are being used on non supported architectures (such as scsi/snic on something else than x86_64, scsi/ips on non x86/x86_64/itanium, have broken firmware settings for the irqchip/irq-gic on arm64 ...).h]h)}(hcertain drivers are being used on non supported architectures (such as scsi/snic on something else than x86_64, scsi/ips on non x86/x86_64/itanium, have broken firmware settings for the irqchip/irq-gic on arm64 ...).h]hcertain drivers are being used on non supported architectures (such as scsi/snic on something else than x86_64, scsi/ips on non x86/x86_64/itanium, have broken firmware settings for the irqchip/irq-gic on arm64 ...).}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjs ubah}(h]h ]h"]h$]h&]uh1j hj( ubj )}(hXdx86/x86_64: Microcode late loading is dangerous and will result in tainting the kernel. It requires that all CPUs rendezvous to make sure the update happens when the system is as quiescent as possible. However, a higher priority MCE/SMI/NMI can move control flow away from that rendezvous and interrupt the update, which can be detrimental to the machine. h]h)}(hXcx86/x86_64: Microcode late loading is dangerous and will result in tainting the kernel. It requires that all CPUs rendezvous to make sure the update happens when the system is as quiescent as possible. However, a higher priority MCE/SMI/NMI can move control flow away from that rendezvous and interrupt the update, which can be detrimental to the machine.h]hXcx86/x86_64: Microcode late loading is dangerous and will result in tainting the kernel. It requires that all CPUs rendezvous to make sure the update happens when the system is as quiescent as possible. However, a higher priority MCE/SMI/NMI can move control flow away from that rendezvous and interrupt the update, which can be detrimental to the machine.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj( ubeh}(h]h ]h"]h$]h&]bullet-uh1j& hhhK~hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(he``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all modules were unloaded normally. h]h)}(hd``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all modules were unloaded normally.h](h)}(h``R``h]hR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh# if a module was force unloaded by }(hj hhhNhNubh)}(h ``rmmod -f``h]hrmmod -f}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh, }(hj hhhNhNubh)}(h``' '``h]h' '}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh' if all modules were unloaded normally.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hu``M`` if any processor has reported a Machine Check Exception, ``' '`` if no Machine Check Exceptions have occurred. h]h)}(ht``M`` if any processor has reported a Machine Check Exception, ``' '`` if no Machine Check Exceptions have occurred.h](h)}(h``M``h]hM}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh: if any processor has reported a Machine Check Exception, }(hj hhhNhNubh)}(h``' '``h]h' '}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh. if no Machine Check Exceptions have occurred.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h``B`` If a page-release function has found a bad page reference or some unexpected page flags. This indicates a hardware problem or a kernel bug; there should be other information in the log indicating why this tainting occurred. h]h)}(h``B`` If a page-release function has found a bad page reference or some unexpected page flags. This indicates a hardware problem or a kernel bug; there should be other information in the log indicating why this tainting occurred.h](h)}(h``B``h]hB}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7 ubh If a page-release function has found a bad page reference or some unexpected page flags. This indicates a hardware problem or a kernel bug; there should be other information in the log indicating why this tainting occurred.}(hj7 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3 ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hl``U`` if a user or user application specifically requested that the Tainted flag be set, ``' '`` otherwise. h]h)}(hk``U`` if a user or user application specifically requested that the Tainted flag be set, ``' '`` otherwise.h](h)}(h``U``h]hU}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj] ubhT if a user or user application specifically requested that the Tainted flag be set, }(hj] hhhNhNubh)}(h``' '``h]h' '}(hjs hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj] ubh otherwise.}(hj] hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjY ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hF``D`` if the kernel has died recently, i.e. there was an OOPS or BUG. h]h)}(hE``D`` if the kernel has died recently, i.e. there was an OOPS or BUG.h](h)}(h``D``h]hD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh@ if the kernel has died recently, i.e. there was an OOPS or BUG.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h,``A`` if an ACPI table has been overridden. h]h)}(h+``A`` if an ACPI table has been overridden.h](h)}(h``A``h]hA}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubh& if an ACPI table has been overridden.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hw``W`` if a warning has previously been issued by the kernel. (Though some warnings may set more specific taint flags.) h]h)}(hv``W`` if a warning has previously been issued by the kernel. (Though some warnings may set more specific taint flags.)h](h)}(h``W``h]hW}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj ubhq if a warning has previously been issued by the kernel. (Though some warnings may set more specific taint flags.)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h+``C`` if a staging driver has been loaded. h]h)}(h*``C`` if a staging driver has been loaded.h](h)}(h``C``h]hC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh% if a staging driver has been loaded.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h_``I`` if the kernel is working around a severe bug in the platform firmware (BIOS or similar). h]h)}(h^``I`` if the kernel is working around a severe bug in the platform firmware (BIOS or similar).h](h)}(h``I``h]hI}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-ubhY if the kernel is working around a severe bug in the platform firmware (BIOS or similar).}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj)ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hE``O`` if an externally-built ("out-of-tree") module has been loaded. h]h)}(hD``O`` if an externally-built ("out-of-tree") module has been loaded.h](h)}(h``O``h]hO}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjSubhC if an externally-built (“out-of-tree”) module has been loaded.}(hjShhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjOubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hU``E`` if an unsigned module has been loaded in a kernel supporting module signature. h]h)}(hT``E`` if an unsigned module has been loaded in a kernel supporting module signature.h](h)}(h``E``h]hE}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyubhO if an unsigned module has been loaded in a kernel supporting module signature.}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjuubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h>``L`` if a soft lockup has previously occurred on the system. h]h)}(h=``L`` if a soft lockup has previously occurred on the system.h](h)}(h``L``h]hL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh8 if a soft lockup has previously occurred on the system.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h+``K`` if the kernel has been live patched. h]h)}(h*``K`` if the kernel has been live patched.h](h)}(h``K``h]hK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh% if the kernel has been live patched.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hC``X`` Auxiliary taint, defined for and used by Linux distributors. h]h)}(hB``X`` Auxiliary taint, defined for and used by Linux distributors.h](h)}(h``X``h]hX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh= Auxiliary taint, defined for and used by Linux distributors.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h``T`` Kernel was build with the randstruct plugin, which can intentionally produce extremely unusual kernel structure layouts (even performance pathological ones), which is important to know when debugging. Set at build time. h]h)}(h``T`` Kernel was build with the randstruct plugin, which can intentionally produce extremely unusual kernel structure layouts (even performance pathological ones), which is important to know when debugging. Set at build time.h](h)}(h``T``h]hT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubh Kernel was build with the randstruct plugin, which can intentionally produce extremely unusual kernel structure layouts (even performance pathological ones), which is important to know when debugging. Set at build time.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h@``N`` if an in-kernel test, such as a KUnit test, has been run. h]h)}(h?``N`` if an in-kernel test, such as a KUnit test, has been run.h](h)}(h``N``h]hN}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7ubh: if an in-kernel test, such as a KUnit test, has been run.}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(h``J`` if userspace opened /dev/fwctl/* and performed a FWTCL_RPC_DEBUG_WRITE to use the devices debugging features. Device debugging features could cause the device to malfunction in undefined ways.h]h)}(h``J`` if userspace opened /dev/fwctl/* and performed a FWTCL_RPC_DEBUG_WRITE to use the devices debugging features. Device debugging features could cause the device to malfunction in undefined ways.h](h)}(h``J``h]hJ}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]ubh if userspace opened /dev/fwctl/* and performed a FWTCL_RPC_DEBUG_WRITE to use the devices debugging features. Device debugging features could cause the device to malfunction in undefined ways.}(hj]hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjYubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix)startKuh1j} hjy ubah}(h]h ]h"]h$]h&]uh1jw hhhKqhjf hhubeh}(h]&more-detailed-explanation-for-taintingah ]h"]&more detailed explanation for taintingah$]h&]uh1hhhhhhhhKoubeh}(h]tainted-kernelsah ]h"]tainted kernelsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehʌ _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjjjjj:j7jc j` jju nametypes}(jjjj:jc juh}(jhjjjjj7j1j` jjjf u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]hsystem_message)}(hhh]h)}(h:Enumerated list start value not ordinal-1: "0" (ordinal 0)h]h>Enumerated list start value not ordinal-1: “0” (ordinal 0)}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehʌlineKuh1j%hjy ubatransform_messages] transformerN include_log] decorationNhhub.