Skip to content
  • Andrey Konovalov's avatar
    kasan: add and integrate kasan boot parameters · 45feb525
    Andrey Konovalov authored and Vincenzo Frascino's avatar Vincenzo Frascino committed
    Hardware tag-based KASAN mode is intended to eventually be used in
    production as a security mitigation. Therefore there's a need for finer
    control over KASAN features and for an existence of a kill switch.
    
    This change adds a few boot parameters for hardware tag-based KASAN that
    allow to disable or otherwise control particular KASAN features.
    
    The features that can be controlled are:
    
    1. Whether KASAN is enabled at all.
    2. Whether KASAN collects and saves alloc/free stacks.
    3. Whether KASAN panics on a detected bug or not.
    
    With this change a new boot parameter kasan.mode allows to choose one of
    three main modes:
    
    - kasan.mode=off - KASAN is disabled, no tag checks are performed
    - kasan.mode=prod - only essential production features are enabled
    - kasan.mode=full - all KASAN features are enabled
    
    The chosen mode provides default control values for the features mentioned
    above. However it's also possible to override the default values by
    providing:
    
    - kasan.stack=off/on - enable stacks collection
                           (default: on for mode=full, otherwise off)
    - kasan.fault=report/panic - only report tag fault or also panic
                                 (default: report)
    
    If kasan.mode parameter is not provided, it defaults to full when
    CONFIG_DEBUG_KERNEL is enabled, and to prod otherwise.
    
    It is essential that switching between these modes doesn't require
    rebuilding the kernel with different configs, as this is required by
    the Android GKI (Generic Kernel Image) initiative [1].
    
    [1] https://source.android.com/devices/architecture/kernel/generic-kernel-image
    
    
    
    Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
    Link: https://linux-review.googlesource.com/id/If7d37003875b2ed3e0935702c8015c223d6416a4
    45feb525