diff options
author | Emese Revfy <re.emese@gmail.com> | 2016-06-20 14:42:34 -0400 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2016-10-10 17:51:45 -0400 |
commit | 0766f788eb727e2e330d55d30545db65bcf2623f (patch) | |
tree | 0436ae3b005558a4fb827459fe5c602037fe764a /kernel/rcu | |
parent | 38addce8b600ca335dc86fa3d48c890f1c6fa1f4 (diff) |
latent_entropy: Mark functions with __latent_entropy
The __latent_entropy gcc attribute can be used only on functions and
variables. If it is on a function then the plugin will instrument it for
gathering control-flow entropy. If the attribute is on a variable then
the plugin will initialize it with random contents. The variable must
be an integer, an integer array type or a structure with integer fields.
These specific functions have been selected because they are init
functions (to help gather boot-time entropy), are called at unpredictable
times, or they have variable loops, each of which provide some level of
latent entropy.
Signed-off-by: Emese Revfy <re.emese@gmail.com>
[kees: expanded commit message]
Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'kernel/rcu')
-rw-r--r-- | kernel/rcu/tiny.c | 2 | ||||
-rw-r--r-- | kernel/rcu/tree.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c index 944b1b491ed8..1898559e6b60 100644 --- a/kernel/rcu/tiny.c +++ b/kernel/rcu/tiny.c | |||
@@ -170,7 +170,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp) | |||
170 | false)); | 170 | false)); |
171 | } | 171 | } |
172 | 172 | ||
173 | static void rcu_process_callbacks(struct softirq_action *unused) | 173 | static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused) |
174 | { | 174 | { |
175 | __rcu_process_callbacks(&rcu_sched_ctrlblk); | 175 | __rcu_process_callbacks(&rcu_sched_ctrlblk); |
176 | __rcu_process_callbacks(&rcu_bh_ctrlblk); | 176 | __rcu_process_callbacks(&rcu_bh_ctrlblk); |
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 5d80925e7fc8..e5164deb51e1 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c | |||
@@ -3013,7 +3013,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) | |||
3013 | /* | 3013 | /* |
3014 | * Do RCU core processing for the current CPU. | 3014 | * Do RCU core processing for the current CPU. |
3015 | */ | 3015 | */ |
3016 | static void rcu_process_callbacks(struct softirq_action *unused) | 3016 | static __latent_entropy void rcu_process_callbacks(struct softirq_action *unused) |
3017 | { | 3017 | { |
3018 | struct rcu_state *rsp; | 3018 | struct rcu_state *rsp; |
3019 | 3019 | ||