lkml.org 
[lkml]   [2017]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] jump_label: Add comment about initialization order for anonymous unions

    Commit 3821fd35b58d ("jump_label: Reduce the size of struct static_key")
    broke old compilers that could not handle static initialization of anonymous
    unions. Boris fixed it with a patch that added brackets around the static
    initializer. But this creates a dependency between those initializers
    and the structure's order of its fields. Document this dependency in
    case new fields are added to struct static_key in the future.

    Noted-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Suggested-by: Chris Mason <clm@fb.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    ---
    include/linux/jump_label.h | 7 +++++++
    1 file changed, 7 insertions(+)

    diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
    index a7f9011..28e04a33 100644
    --- a/include/linux/jump_label.h
    +++ b/include/linux/jump_label.h
    @@ -90,6 +90,13 @@ extern bool static_key_initialized;
    struct static_key {
    atomic_t enabled;
    /*
    + * Note:
    + * To make anonymous unions work with old compilers, the static
    + * initialization of them requires brackets. This creates a dependency
    + * on the order of the struct with the initializers. If any fields
    + * are added, STATIC_KEY_INIT_TRUE and STATIC_KEY_INIT_FALSE may need
    + * to be modified.
    + *
    * bit 0 => 1 if key is initially true
    * 0 if initially false
    * bit 1 => 1 if points to struct static_key_mod
    --
    2.9.3
    \
     
     \ /
      Last update: 2017-03-02 23:37    [W:3.927 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site