Add the srbds check
[kconfig-hardened-check.git] / kconfig_hardened_check / __init__.py
index a926402426c3eba4ba100a9fb0f17b4a81d4bcfa..4dc9fe721058df14ccdd050b308387714dcb43eb 100644 (file)
@@ -17,7 +17,6 @@
 #       Аrch-independent:
 #       X86:
 #           l1d_flush=on (a part of the l1tf option)
-#           mds=full,nosmt
 #           tsx=off
 #       ARM64:
 #           kpti=on
@@ -741,6 +740,16 @@ def add_cmdline_checks(l, arch):
              CmdlineCheck('self_protection', 'defconfig', 'spec_store_bypass_disable', 'is not set'))]
     l += [OR(CmdlineCheck('self_protection', 'defconfig', 'l1tf', 'is not off'),
              CmdlineCheck('self_protection', 'defconfig', 'l1tf', 'is not set'))]
+    l += [OR(CmdlineCheck('self_protection', 'defconfig', 'mds', 'is not off'),
+             CmdlineCheck('self_protection', 'defconfig', 'mds', 'is not set'))]
+    l += [OR(CmdlineCheck('self_protection', 'defconfig', 'tsx_async_abort', 'is not off'),
+             CmdlineCheck('self_protection', 'defconfig', 'tsx_async_abort', 'is not set'))]
+    l += [OR(CmdlineCheck('self_protection', 'defconfig', 'srbds', 'is not off'),
+             CmdlineCheck('self_protection', 'defconfig', 'srbds', 'is not set'))]
+    l += [OR(CmdlineCheck('self_protection', 'defconfig', 'mmio_stale_data', 'is not off'),
+             CmdlineCheck('self_protection', 'defconfig', 'mmio_stale_data', 'is not set'))]
+    l += [OR(CmdlineCheck('self_protection', 'defconfig', 'retbleed', 'is not off'),
+             CmdlineCheck('self_protection', 'defconfig', 'retbleed', 'is not set'))]
     if arch == 'ARM64':
         l += [OR(CmdlineCheck('self_protection', 'defconfig', 'rodata', 'full'),
                  AND(KconfigCheck('self_protection', 'defconfig', 'RODATA_FULL_DEFAULT_ENABLED', 'y'),
@@ -964,6 +973,21 @@ def normalize_cmdline_options(option, value):
     if option == 'l1tf':
         # See l1tf_cmdline() in arch/x86/kernel/cpu/bugs.c
         return value
+    if option == 'mds':
+        # See mds_cmdline() in arch/x86/kernel/cpu/bugs.c
+        return value
+    if option == 'tsx_async_abort':
+        # See tsx_async_abort_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
+        return value
+    if option == 'srbds':
+        # See srbds_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
+        return value
+    if option == 'mmio_stale_data':
+        # See mmio_stale_data_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
+        return value
+    if option == 'retbleed':
+        # See retbleed_parse_cmdline() in arch/x86/kernel/cpu/bugs.c
+        return value
 
     # Implement a limited part of the kstrtobool() logic
     if value in ('1', 'on', 'On', 'ON', 'y', 'Y', 'yes', 'Yes', 'YES'):