x86/microcode: Do not select FW_LOADER
authorHerbert Xu <herbert@gondor.apana.org.au>
Wed, 10 Jun 2020 11:05:13 +0000 (21:05 +1000)
committerBorislav Petkov <bp@suse.de>
Mon, 15 Jun 2020 09:59:19 +0000 (11:59 +0200)
The x86 microcode support works just fine without FW_LOADER. In fact,
these days most people load microcode early during boot so FW_LOADER
never gets into the picture anyway.

As almost everyone on x86 needs to enable MICROCODE, this by extension
means that FW_LOADER is always built into the kernel even if nothing
uses it. The FW_LOADER system is about two thousand lines long and
contains user-space facing interfaces that could potentially provide an
entry point into the kernel (or beyond).

Remove the unnecessary select of FW_LOADER by MICROCODE. People who need
the FW_LOADER capability can still enable it.

 [ bp: Massage a bit. ]

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lkml.kernel.org/r/20200610042911.GA20058@gondor.apana.org.au
arch/x86/Kconfig
arch/x86/kernel/cpu/microcode/core.c

index 6a0cc52..5c44eac 100644 (file)
@@ -1292,7 +1292,6 @@ config MICROCODE
        bool "CPU microcode loading support"
        default y
        depends on CPU_SUP_AMD || CPU_SUP_INTEL
-       select FW_LOADER
        help
          If you say Y here, you will be able to update the microcode on
          Intel and AMD processors. The Intel support is for the IA32 family,
@@ -1314,7 +1313,6 @@ config MICROCODE_INTEL
        bool "Intel microcode loading support"
        depends on MICROCODE
        default MICROCODE
-       select FW_LOADER
        help
          This options enables microcode patch loading support for Intel
          processors.
@@ -1326,7 +1324,6 @@ config MICROCODE_INTEL
 config MICROCODE_AMD
        bool "AMD microcode loading support"
        depends on MICROCODE
-       select FW_LOADER
        help
          If you select this option, microcode patch loading support for AMD
          processors will be enabled.
index baec68b..ec6f041 100644 (file)
@@ -145,7 +145,6 @@ extern struct builtin_fw __end_builtin_fw[];
 
 bool get_builtin_firmware(struct cpio_data *cd, const char *name)
 {
-#ifdef CONFIG_FW_LOADER
        struct builtin_fw *b_fw;
 
        for (b_fw = __start_builtin_fw; b_fw != __end_builtin_fw; b_fw++) {
@@ -155,7 +154,6 @@ bool get_builtin_firmware(struct cpio_data *cd, const char *name)
                        return true;
                }
        }
-#endif
        return false;
 }