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
 
        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,
        bool "Intel microcode loading support"
        depends on MICROCODE
        default MICROCODE
-       select FW_LOADER
        help
          This options enables microcode patch loading support for Intel
          processors.
 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.
 
 
 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++) {
                        return true;
                }
        }
-#endif
        return false;
 }