Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • L linux-iv
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • linux-arm
  • linux-iv
  • Repository
Switch branch/tag
  • linux-iv
  • mm
  • kasan
  • common.c
Find file BlameHistoryPermalink
  • Andrey Konovalov's avatar
    kasan: add and integrate kasan boot parameters · b7699e2b
    Andrey Konovalov authored Nov 24, 2020
    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.stacktrace=off/on - enable alloc/free stack 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
    
    Link: https://lkml.kernel.org/r/cb093613879d8d8841173f090133eddeb4c35f1f.1606162397.git.andreyknvl@google.com
    Link: https://linux-review.googlesource.com/id/If7d37003875b2ed3e0935702c8015c223d6416a4
    
    
    Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
    Reviewed-by: default avatarMarco Elver <elver@google.com>
    Reviewed-by: default avatarDmitry Vyukov <dvyukov@google.com>
    Tested-by: Vincenzo Frascino's avatarVincenzo Frascino <vincenzo.frascino@arm.com>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Branislav Rankov <Branislav.Rankov@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Evgenii Stepanov <eugenis@google.com>
    Cc: Kevin Brodsky <kevin.brodsky@arm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
    b7699e2b