lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 33/39] kasan: mark kasan_arg_stacktrace as __initdata
    Date
    From: Andrey Konovalov <andreyknvl@google.com>

    As kasan_arg_stacktrace is only used in __init functions, mark it as
    __initdata instead of __ro_after_init to allow it be freed after boot.

    The other enums for KASAN args are used in kasan_init_hw_tags_cpu(),
    which is not marked as __init as a CPU can be hot-plugged after boot.
    Clarify this in a comment.

    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    Suggested-by: Marco Elver <elver@google.com>

    ---

    Changes v1->v2:
    - Add this patch.
    ---
    mm/kasan/hw_tags.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

    diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c
    index 2e9378a4f07f..6509809dd5d8 100644
    --- a/mm/kasan/hw_tags.c
    +++ b/mm/kasan/hw_tags.c
    @@ -40,7 +40,7 @@ enum kasan_arg_stacktrace {

    static enum kasan_arg kasan_arg __ro_after_init;
    static enum kasan_arg_mode kasan_arg_mode __ro_after_init;
    -static enum kasan_arg_stacktrace kasan_arg_stacktrace __ro_after_init;
    +static enum kasan_arg_stacktrace kasan_arg_stacktrace __initdata;

    /* Whether KASAN is enabled at all. */
    DEFINE_STATIC_KEY_FALSE(kasan_flag_enabled);
    @@ -116,7 +116,10 @@ static inline const char *kasan_mode_info(void)
    return "sync";
    }

    -/* kasan_init_hw_tags_cpu() is called for each CPU. */
    +/*
    + * kasan_init_hw_tags_cpu() is called for each CPU.
    + * Not marked as __init as a CPU can be hot-plugged after boot.
    + */
    void kasan_init_hw_tags_cpu(void)
    {
    /*
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-01-24 19:08    [W:3.201 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site