lkml.org 
[lkml]   [2020]   [Jul]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v6 11/17] static_call: Simple self-test

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    ---
    arch/Kconfig | 6 ++++++
    kernel/static_call.c | 28 ++++++++++++++++++++++++++++
    2 files changed, 34 insertions(+)

    --- a/arch/Kconfig
    +++ b/arch/Kconfig
    @@ -103,6 +103,12 @@ config STATIC_KEYS_SELFTEST
    help
    Boot time self-test of the branch patching code.

    +config STATIC_CALL_SELFTEST
    + bool "Static call selftest"
    + depends on HAVE_STATIC_CALL
    + help
    + Boot time self-test of the call patching code.
    +
    config OPTPROBES
    def_bool y
    depends on KPROBES && HAVE_OPTPROBES
    --- a/kernel/static_call.c
    +++ b/kernel/static_call.c
    @@ -364,3 +364,31 @@ static void __init static_call_init(void
    #endif
    }
    early_initcall(static_call_init);
    +
    +#ifdef CONFIG_STATIC_CALL_SELFTEST
    +
    +static int func_a(int x)
    +{
    + return x+1;
    +}
    +
    +static int func_b(int x)
    +{
    + return x+2;
    +}
    +
    +DEFINE_STATIC_CALL(sc_selftest, func_a);
    +
    +static int __init test_static_call_init(void)
    +{
    + WARN_ON(static_call(sc_selftest)(2) != 3);
    + static_call_update(sc_selftest, &func_b);
    + WARN_ON(static_call(sc_selftest)(2) != 4);
    + static_call_update(sc_selftest, &func_a);
    + WARN_ON(static_call(sc_selftest)(2) != 3);
    +
    + return 0;
    +}
    +early_initcall(test_static_call_init);
    +
    +#endif /* CONFIG_STATIC_CALL_SELFTEST */

    \
     
     \ /
      Last update: 2020-07-10 15:45    [W:2.776 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site