mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2025-04-19 20:58:31 +09:00
taint: Add TAINT_FWCTL
Requesting a fwctl scope of access that includes mutating device debug data will cause the kernel to be tainted. Changing the device operation through things in the debug scope may cause the device to malfunction in undefined ways. This should be reflected in the TAINT flags to help any debuggers understand that something has been done. Link: https://patch.msgid.link/r/4-v5-642aa0c94070+4447f-fwctl_jgg@nvidia.com Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Shannon Nelson <shannon.nelson@amd.com> Tested-by: Dave Jiang <dave.jiang@intel.com> Tested-by: Shannon Nelson <shannon.nelson@amd.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
fb39e9092b
commit
8eea4e7447
@ -101,6 +101,7 @@ Bit Log Number Reason that got the kernel tainted
|
||||
16 _/X 65536 auxiliary taint, defined for and used by distros
|
||||
17 _/T 131072 kernel was built with the struct randomization plugin
|
||||
18 _/N 262144 an in-kernel test has been run
|
||||
19 _/J 524288 userspace used a mutating debug operation in fwctl
|
||||
=== === ====== ========================================================
|
||||
|
||||
Note: The character ``_`` is representing a blank in this table to make reading
|
||||
@ -184,3 +185,7 @@ More detailed explanation for tainting
|
||||
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.
|
||||
|
@ -74,7 +74,8 @@ static inline void set_arch_panic_timeout(int timeout, int arch_default_timeout)
|
||||
#define TAINT_AUX 16
|
||||
#define TAINT_RANDSTRUCT 17
|
||||
#define TAINT_TEST 18
|
||||
#define TAINT_FLAGS_COUNT 19
|
||||
#define TAINT_FWCTL 19
|
||||
#define TAINT_FLAGS_COUNT 20
|
||||
#define TAINT_FLAGS_MAX ((1UL << TAINT_FLAGS_COUNT) - 1)
|
||||
|
||||
struct taint_flag {
|
||||
|
@ -511,6 +511,7 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
|
||||
TAINT_FLAG(AUX, 'X', ' ', true),
|
||||
TAINT_FLAG(RANDSTRUCT, 'T', ' ', true),
|
||||
TAINT_FLAG(TEST, 'N', ' ', true),
|
||||
TAINT_FLAG(FWCTL, 'J', ' ', true),
|
||||
};
|
||||
|
||||
#undef TAINT_FLAG
|
||||
|
@ -204,6 +204,14 @@ else
|
||||
echo " * an in-kernel test (such as a KUnit test) has been run (#18)"
|
||||
fi
|
||||
|
||||
T=`expr $T / 2`
|
||||
if [ `expr $T % 2` -eq 0 ]; then
|
||||
addout " "
|
||||
else
|
||||
addout "J"
|
||||
echo " * fwctl's mutating debug interface was used (#19)"
|
||||
fi
|
||||
|
||||
echo "For a more detailed explanation of the various taint flags see"
|
||||
echo " Documentation/admin-guide/tainted-kernels.rst in the Linux kernel sources"
|
||||
echo " or https://kernel.org/doc/html/latest/admin-guide/tainted-kernels.html"
|
||||
|
Loading…
x
Reference in New Issue
Block a user