Commit | Line | Data |
---|---|---|
337c188d MCC |
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 | ||
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 | ||
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. |