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 /lib | |
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 'lib')
-rw-r--r-- | lib/irq_poll.c | 2 | ||||
-rw-r--r-- | lib/random32.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/lib/irq_poll.c b/lib/irq_poll.c index 836f7db4e548..63be7495dbb2 100644 --- a/lib/irq_poll.c +++ b/lib/irq_poll.c | |||
@@ -74,7 +74,7 @@ void irq_poll_complete(struct irq_poll *iop) | |||
74 | } | 74 | } |
75 | EXPORT_SYMBOL(irq_poll_complete); | 75 | EXPORT_SYMBOL(irq_poll_complete); |
76 | 76 | ||
77 | static void irq_poll_softirq(struct softirq_action *h) | 77 | static void __latent_entropy irq_poll_softirq(struct softirq_action *h) |
78 | { | 78 | { |
79 | struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll); | 79 | struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll); |
80 | int rearm = 0, budget = irq_poll_budget; | 80 | int rearm = 0, budget = irq_poll_budget; |
diff --git a/lib/random32.c b/lib/random32.c index 69ed593aab07..a30923573676 100644 --- a/lib/random32.c +++ b/lib/random32.c | |||
@@ -47,7 +47,7 @@ static inline void prandom_state_selftest(void) | |||
47 | } | 47 | } |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | static DEFINE_PER_CPU(struct rnd_state, net_rand_state); | 50 | static DEFINE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy; |
51 | 51 | ||
52 | /** | 52 | /** |
53 | * prandom_u32_state - seeded pseudo-random number generator. | 53 | * prandom_u32_state - seeded pseudo-random number generator. |