• Lukas Bulwahn's avatar
    mm: Kconfig: make config SECRETMEM visible with EXPERT · 74947724
    Lukas Bulwahn authored
    Commit 6a108a14 ("kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT")
    introduces CONFIG_EXPERT to carry the previous intent of CONFIG_EMBEDDED
    and just gives that intent a much better name.  That has been clearly a
    good and long overdue renaming, and it is clearly an improvement to the
    kernel build configuration that has shown to help managing the kernel
    build configuration in the last decade.
    
    However, rather than bravely and radically just deleting CONFIG_EMBEDDED,
    this commit gives CONFIG_EMBEDDED a new intended semantics, but keeps it
    open for future contributors to implement that intended semantics:
    
        A new CONFIG_EMBEDDED option is added that automatically selects
        CONFIG_EXPERT when enabled and can be used in the future to isolate
        options that should only be considered for embedded systems (RISC
        architectures, SLOB, etc).
    
    Since then, this CONFIG_EMBEDDED implicitly had two purposes:
    
      - It can make even more options visible beyond what CONFIG_EXPERT makes
        visible. In other words, it may introduce another level of enabling the
        visibility of configuration options: always visible, visible with
        CONFIG_EXPERT and visible with CONFIG_EMBEDDED.
    
      - Set certain default values of some configurations differently,
        following the assumption that configuring a kernel build for an
        embedded system generally starts with a different set of default values
        compared to kernel builds for all other kind of systems.
    
    Considering the second purpose, note that already probably arguing that a
    kernel build for an embedded system would choose some values differently
    is already tricky: the set of embedded systems with Linux kernels is
    already quite diverse.  Many embedded system have powerful CPUs and it
    would not be clear that all embedded systems just optimize towards one
    specific aspect, e.g., a smaller kernel image size.  So, it is unclear if
    starting with "one set of default configuration" that is induced by
    CONFIG_EMBEDDED is a good offer for developers configuring their kernels.
    
    Also, the differences of needed user-space features in an embedded system
    compared to a non-embedded system are probably difficult or even
    impossible to name in some generic way.
    
    So it is not surprising that in the last decade hardly anyone has
    contributed changes to make something default differently in case of
    CONFIG_EMBEDDED=y.
    
    Currently, in v6.0-rc4, SECRETMEM is the only config switched off if
    CONFIG_EMBEDDED=y.
    
    As long as that is actually the only option that currently is selected or
    deselected, it is better to just make SECRETMEM configurable at build time
    by experts using menuconfig instead.
    
    Make SECRETMEM configurable when EXPERT is set and otherwise default to
    yes.  Further, SECRETMEM needs ARCH_HAS_SET_DIRECT_MAP.
    
    This allows us to remove CONFIG_EMBEDDED in the close future.
    
    Link: https://lkml.kernel.org/r/20221116131922.25533-1-lukas.bulwahn@gmail.comSigned-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
    Acked-by: default avatarMike Rapoport <rppt@linux.ibm.com>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    Reviewed-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    74947724
Kconfig 35.5 KB