random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
commit 7b87324112df2e1f9b395217361626362dcfb9fb upstream. Rather than an awkward combination of ifdefs and __maybe_unused, we can ensure more source gets parsed, regardless of the configuration, by using IS_ENABLED for the CONFIG_NUMA conditional code. This makes things cleaner and easier to follow. I've confirmed that on !CONFIG_NUMA, we don't wind up with excess code by accident; the generated object file is the same. Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
6443204102
commit
efaddd56bc
@@ -759,7 +759,6 @@ static int credit_entropy_bits_safe(struct entropy_store *r, int nbits)
|
|||||||
|
|
||||||
static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
|
static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
|
||||||
|
|
||||||
#ifdef CONFIG_NUMA
|
|
||||||
/*
|
/*
|
||||||
* Hack to deal with crazy userspace progams when they are all trying
|
* Hack to deal with crazy userspace progams when they are all trying
|
||||||
* to access /dev/urandom in parallel. The programs are almost
|
* to access /dev/urandom in parallel. The programs are almost
|
||||||
@@ -767,7 +766,6 @@ static DECLARE_WAIT_QUEUE_HEAD(crng_init_wait);
|
|||||||
* their brain damage.
|
* their brain damage.
|
||||||
*/
|
*/
|
||||||
static struct crng_state **crng_node_pool __read_mostly;
|
static struct crng_state **crng_node_pool __read_mostly;
|
||||||
#endif
|
|
||||||
|
|
||||||
static void invalidate_batched_entropy(void);
|
static void invalidate_batched_entropy(void);
|
||||||
static void numa_crng_init(void);
|
static void numa_crng_init(void);
|
||||||
@@ -815,7 +813,7 @@ static bool __init crng_init_try_arch_early(struct crng_state *crng)
|
|||||||
return arch_init;
|
return arch_init;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __maybe_unused crng_initialize_secondary(struct crng_state *crng)
|
static void crng_initialize_secondary(struct crng_state *crng)
|
||||||
{
|
{
|
||||||
chacha_init_consts(crng->state);
|
chacha_init_consts(crng->state);
|
||||||
_get_random_bytes(&crng->state[4], sizeof(__u32) * 12);
|
_get_random_bytes(&crng->state[4], sizeof(__u32) * 12);
|
||||||
@@ -866,7 +864,6 @@ static void crng_finalize_init(struct crng_state *crng)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NUMA
|
|
||||||
static void do_numa_crng_init(struct work_struct *work)
|
static void do_numa_crng_init(struct work_struct *work)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@@ -893,11 +890,13 @@ static DECLARE_WORK(numa_crng_init_work, do_numa_crng_init);
|
|||||||
|
|
||||||
static void numa_crng_init(void)
|
static void numa_crng_init(void)
|
||||||
{
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_NUMA))
|
||||||
schedule_work(&numa_crng_init_work);
|
schedule_work(&numa_crng_init_work);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct crng_state *select_crng(void)
|
static struct crng_state *select_crng(void)
|
||||||
{
|
{
|
||||||
|
if (IS_ENABLED(CONFIG_NUMA)) {
|
||||||
struct crng_state **pool;
|
struct crng_state **pool;
|
||||||
int nid = numa_node_id();
|
int nid = numa_node_id();
|
||||||
|
|
||||||
@@ -905,17 +904,10 @@ static struct crng_state *select_crng(void)
|
|||||||
pool = READ_ONCE(crng_node_pool);
|
pool = READ_ONCE(crng_node_pool);
|
||||||
if (pool && pool[nid])
|
if (pool && pool[nid])
|
||||||
return pool[nid];
|
return pool[nid];
|
||||||
|
}
|
||||||
|
|
||||||
return &primary_crng;
|
return &primary_crng;
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
static void numa_crng_init(void) {}
|
|
||||||
|
|
||||||
static struct crng_state *select_crng(void)
|
|
||||||
{
|
|
||||||
return &primary_crng;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* crng_fast_load() can be called by code in the interrupt service
|
* crng_fast_load() can be called by code in the interrupt service
|
||||||
|
Reference in New Issue
Block a user