About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / admin-guide / tainted-kernels.rst




Custom Search

Based on kernel version 4.16.1. Page generated on 2018-04-09 11:52 EST.

1	Tainted kernels
2	---------------
3	
4	Some oops reports contain the string **'Tainted: '** after the program
5	counter. This indicates that the kernel has been tainted by some
6	mechanism.  The string is followed by a series of position-sensitive
7	characters, each representing a particular tainted value.
8	
9	  1) 'G' if all modules loaded have a GPL or compatible license, 'P' if
10	     any proprietary module has been loaded.  Modules without a
11	     MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
12	     insmod as GPL compatible are assumed to be proprietary.
13	
14	  2) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all
15	     modules were loaded normally.
16	
17	  3) ``S`` if the oops occurred on an SMP kernel running on hardware that
18	     hasn't been certified as safe to run multiprocessor.
19	     Currently this occurs only on various Athlons that are not
20	     SMP capable.
21	
22	  4) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all
23	     modules were unloaded normally.
24	
25	  5) ``M`` if any processor has reported a Machine Check Exception,
26	     ``' '`` if no Machine Check Exceptions have occurred.
27	
28	  6) ``B`` if a page-release function has found a bad page reference or
29	     some unexpected page flags.
30	
31	  7) ``U`` if a user or user application specifically requested that the
32	     Tainted flag be set, ``' '`` otherwise.
33	
34	  8) ``D`` if the kernel has died recently, i.e. there was an OOPS or BUG.
35	
36	  9) ``A`` if the ACPI table has been overridden.
37	
38	 10) ``W`` if a warning has previously been issued by the kernel.
39	     (Though some warnings may set more specific taint flags.)
40	
41	 11) ``C`` if a staging driver has been loaded.
42	
43	 12) ``I`` if the kernel is working around a severe bug in the platform
44	     firmware (BIOS or similar).
45	
46	 13) ``O`` if an externally-built ("out-of-tree") module has been loaded.
47	
48	 14) ``E`` if an unsigned module has been loaded in a kernel supporting
49	     module signature.
50	
51	 15) ``L`` if a soft lockup has previously occurred on the system.
52	
53	 16) ``K`` if the kernel has been live patched.
54	
55	The primary reason for the **'Tainted: '** string is to tell kernel
56	debuggers if this is a clean kernel or if anything unusual has
57	occurred.  Tainting is permanent: even if an offending module is
58	unloaded, the tainted value remains to indicate that the kernel is not
59	trustworthy.
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.