From: David <david.keisarschm@xxxxxxxxxxxxxxx> We changed the invocation of prandom_u32_state to get_random_u32. We also omitted the initial seeding for the state, since get_random_u32 maintains its own, so there is no need to keep storing the state of prandom_u32_state here. Signed-off-by: David <david.keisarschm@xxxxxxxxxxxxxxx> --- mm/slab_common.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/mm/slab_common.c b/mm/slab_common.c index deb764785..6ac68b9a6 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -1130,7 +1130,7 @@ EXPORT_SYMBOL(kmalloc_large_node); #ifdef CONFIG_SLAB_FREELIST_RANDOM /* Randomize a generic freelist */ -static void freelist_randomize(struct rnd_state *state, unsigned int *list, +static void freelist_randomize(unsigned int *list, unsigned int count) { unsigned int rand; @@ -1141,7 +1141,7 @@ static void freelist_randomize(struct rnd_state *state, unsigned int *list, /* Fisher-Yates shuffle */ for (i = count - 1; i > 0; i--) { - rand = predictable_rng_prandom_u32_state(state); + rand = get_random_u32(); rand %= (i + 1); swap(list[i], list[rand]); } @@ -1151,7 +1151,6 @@ static void freelist_randomize(struct rnd_state *state, unsigned int *list, int cache_random_seq_create(struct kmem_cache *cachep, unsigned int count, gfp_t gfp) { - struct rnd_state state; if (count < 2 || cachep->random_seq) return 0; @@ -1160,10 +1159,7 @@ int cache_random_seq_create(struct kmem_cache *cachep, unsigned int count, if (!cachep->random_seq) return -ENOMEM; - /* Get best entropy at this stage of boot */ - prandom_seed_state(&state, get_random_long()); - - freelist_randomize(&state, cachep->random_seq, count); + freelist_randomize(cachep->random_seq, count); return 0; } -- 2.38.0