Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md...
[linux-2.6-block.git] / Documentation / admin-guide / tainted-kernels.rst
CommitLineData
337c188d
MCC
1Tainted kernels
2---------------
3
4Some oops reports contain the string **'Tainted: '** after the program
5counter. This indicates that the kernel has been tainted by some
6mechanism. The string is followed by a series of position-sensitive
7characters, each representing a particular tainted value.
8
b57c847c 9 1) ``G`` if all modules loaded have a GPL or compatible license, ``P`` if
337c188d
MCC
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
b57c847c 14 2) ``F`` if any module was force loaded by ``insmod -f``, ``' '`` if all
337c188d
MCC
15 modules were loaded normally.
16
b57c847c 17 3) ``S`` if the oops occurred on an SMP kernel running on hardware that
337c188d
MCC
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
b57c847c 22 4) ``R`` if a module was force unloaded by ``rmmod -f``, ``' '`` if all
337c188d
MCC
23 modules were unloaded normally.
24
b57c847c 25 5) ``M`` if any processor has reported a Machine Check Exception,
337c188d
MCC
26 ``' '`` if no Machine Check Exceptions have occurred.
27
b57c847c 28 6) ``B`` if a page-release function has found a bad page reference or
337c188d
MCC
29 some unexpected page flags.
30
b57c847c 31 7) ``U`` if a user or user application specifically requested that the
337c188d
MCC
32 Tainted flag be set, ``' '`` otherwise.
33
b57c847c 34 8) ``D`` if the kernel has died recently, i.e. there was an OOPS or BUG.
337c188d 35
b57c847c 36 9) ``A`` if the ACPI table has been overridden.
337c188d
MCC
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
55The primary reason for the **'Tainted: '** string is to tell kernel
56debuggers if this is a clean kernel or if anything unusual has
57occurred. Tainting is permanent: even if an offending module is
58unloaded, the tainted value remains to indicate that the kernel is not
59trustworthy.