mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
jump_label: Add comment about initialization order for anonymous unions
Commit 3821fd35b5
("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>
This commit is contained in:
parent
cd8d860dcc
commit
b17ef2ed62
1 changed files with 7 additions and 0 deletions
|
@ -90,6 +90,13 @@ extern bool static_key_initialized;
|
||||||
struct static_key {
|
struct static_key {
|
||||||
atomic_t enabled;
|
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
|
* bit 0 => 1 if key is initially true
|
||||||
* 0 if initially false
|
* 0 if initially false
|
||||||
* bit 1 => 1 if points to struct static_key_mod
|
* bit 1 => 1 if points to struct static_key_mod
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue