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]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}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(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&]uh1hhhhKhhhhubh 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] [...]}hjsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jhhhKhhhhubh)}(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#hhhhubj)}(hTainted: P W Oh]hTainted: P W O}hj:sbah}(h]h ]h"]h$]h&]j*j+uh1jhhhK'hhhhubh)}(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 (}(hjHhhhNhNubh)}(h``P``h]hP}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubh") was loaded, a warning occurred (}(hjHhhhNhNubh)}(h``W``h]hW}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubh.), and an externally-built module was loaded (}(hjHhhhNhNubh)}(h``O``h]hO}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhjHubh/). To decode other letters use the table below.}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hhhhubeh}(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}(hjhhhNhNubah}(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}(hj hhhNhNubah}(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&]refurijuh1j referencedKhjubh and execute it with }(hjhhhNhNubh)}(h``sh kernel-chktaint``h]hsh kernel-chktaint}(hj/hhhNhNubah}(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 '}hjGsbah}(h]h ]h"]h$]h&]j*j+uh1jhhhK>($i-1)&1));doneh]h[$ for i in $(seq 18); do echo $(($i-1)) $(($(cat /proc/sys/kernel/tainted)>>($i-1)&1));done}hjcsbah}(h]h ]h"]h$]h&]j*j+uh1jhhhKMhjhhubeh}(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}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhhhhhKPubhtable)}(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&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h"Reason that got the kernel taintedh]h"Reason that got the kernel tainted}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(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}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhj:ubah}(h]h ]h"]h$]h&]uh1jhj7ubj)}(hhh]h)}(hG/Ph]hG/P}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjQubah}(h]h ]h"]h$]h&]uh1jhj7ubj)}(hhh]h)}(h1h]h1}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjhubah}(h]h ]h"]h$]h&]uh1jhj7ubj)}(hhh]h)}(hproprietary module was loadedh]hproprietary module was loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(hjmh]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&]uh1jhj4ubj)}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4h]h4}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj0ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0kernel running on an out of specification systemh]h0kernel running on an out of specification system}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjGubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h3h]h3}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjgubah}(h]h ]h"]h$]h&]uh1jhjdubj)}(hhh]h)}(h_/Rh]h_/R}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhj~ubah}(h]h ]h"]h$]h&]uh1jhjdubj)}(hhh]h)}(h8h]h8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjdubj)}(hhh]h)}(hmodule was force unloadedh]hmodule was force unloaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jhjdubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(hj5h]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&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2processor reported a Machine Check Exception (MCE)h]h2processor reported a Machine Check Exception (MCE)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h5h]h5}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhj0ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h_/Bh]h_/B}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjGubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h32h]h32}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhj^ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h1bad page referenced or some unexpected page flagsh]h1bad page referenced or some unexpected page flags}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKZhjuubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h7h]h7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h_/Dh]h_/D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h128h]h128}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj(ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h3kernel died recently, i.e. there was an OOPS or BUGh]h3kernel died recently, i.e. there was an OOPS or BUG}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj?ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(hjh]h8}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hj_ubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hhh]h)}(h_/Ah]h_/A}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjuubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(hhh]h)}(h256h]h256}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhj\ubj)}(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&]uh1jhj\ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h10h]h10}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj(ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(h_/Ch]h_/C}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj?ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(h1024h]h1024}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjVubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hstaging driver was loadedh]hstaging driver was loaded}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjmubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h12h]h12}(hjhhhNhNubah}(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&]uh1hhhhKahj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4096h]h4096}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2externally-built ("out-of-tree") module was loadedh]h6externally-built (“out-of-tree”) module was loaded}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahj7ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h13h]h13}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjWubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hhh]h)}(h_/Eh]h_/E}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjnubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hhh]h)}(h8192h]h8192}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjTubj)}(hhh]h)}(hunsigned module was loadedh]hunsigned module was loaded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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}(hjhhhNhNubah}(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&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h15h]h15}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhj! ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h_/Kh]h_/K}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhj8 ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h32768h]h32768}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjO ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hkernel has been live patchedh]hkernel has been live patched}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKdhjf ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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&]uh1jhj4ubj)}(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}(hj 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}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj0 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](j)}(hhh]h)}(h18h]h18}(hjS hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjP ubah}(h]h ]h"]h$]h&]uh1jhjM ubj)}(hhh]h)}(h_/Nh]h_/N}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjg ubah}(h]h ]h"]h$]h&]uh1jhjM ubj)}(hhh]h)}(h262144h]h262144}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj~ ubah}(h]h ]h"]h$]h&]uh1jhjM 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&]uh1jhjM ubeh}(h]h ]h"]h$]h&]uh1jhj4ubj)}(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&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1j2hjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjyhhhhhNubh)}(hWNote: The character ``_`` is representing a blank in this table to make reading easier.h](hNote: The character }(hj* hhhNhNubh)}(h``_``h]h_}(hj2 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&]uh1hhhhKkhjyhhubeh}(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}(hjU hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjR hhhhhKoubh block_quote)}(hXJ0) ``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 userpace 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}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt ubh9 if all modules loaded have a GPL or compatible license, }(hjt hhhNhNubh)}(h``P``h]hP}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt 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.}(hjt hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKqhjp ubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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](jo )}(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&]uh1jn hj ubjo )}(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.}(hj3 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ ubah}(h]h ]h"]h$]h&]uh1jn hj ubjo )}(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.}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjG ubah}(h]h ]h"]h$]h&]uh1jn hj ubjo )}(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 ...).}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ ubah}(h]h ]h"]h$]h&]uh1jn hj ubjo )}(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&]uh1hhhhKhjw ubah}(h]h ]h"]h$]h&]uh1jn hj ubeh}(h]h ]h"]h$]h&]bullet-uh1j hhhK~hj ubeh}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1hhj# 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.}(hj# hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI ubhT if a user or user application specifically requested that the Tainted flag be set, }(hjI hhhNhNubh)}(h``' '``h]h' '}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjI ubh otherwise.}(hjI hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjE ubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1hhj ubh% if a staging driver has been loaded.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubhY if the kernel is working around a severe bug in the platform firmware (BIOS or similar).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?ubhC if an externally-built (“out-of-tree”) module has been loaded.}(hj?hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj;ubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhjeubhO if an unsigned module has been loaded in a kernel supporting module signature.}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjaubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1jn hjk ubjo )}(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&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(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&]uh1hhj#ubh: if an in-kernel test, such as a KUnit test, has been run.}(hj#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jn hjk ubjo )}(h``J`` if userpace 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 userpace 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}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIubh if userpace 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.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjEubah}(h]h ]h"]h$]h&]uh1jn hjk ubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix)startKuh1ji hje ubah}(h]h ]h"]h$]h&]uh1jc hhhKqhjR 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}(jjjjjvjsj&j#jO jL jju nametypes}(jjjvj&jO juh}(jhjhjsjj#jjL jyjjR 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)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1jhje ubatransform_messages] transformerN include_log] decorationNhhub.