crng              504 drivers/char/random.c static void _extract_crng(struct crng_state *crng, __u8 out[CHACHA_BLOCK_SIZE]);
crng              505 drivers/char/random.c static void _crng_backtrack_protect(struct crng_state *crng,
crng              552 drivers/char/random.c static void crng_reseed(struct crng_state *crng, struct entropy_store *r);
crng              863 drivers/char/random.c static void crng_initialize(struct crng_state *crng)
crng              869 drivers/char/random.c 	memcpy(&crng->state[0], "expand 32-byte k", 16);
crng              870 drivers/char/random.c 	if (crng == &primary_crng)
crng              871 drivers/char/random.c 		_extract_entropy(&input_pool, &crng->state[4],
crng              874 drivers/char/random.c 		_get_random_bytes(&crng->state[4], sizeof(__u32) * 12);
crng              881 drivers/char/random.c 		crng->state[i] ^= rv;
crng              883 drivers/char/random.c 	if (trust_cpu && arch_init && crng == &primary_crng) {
crng              889 drivers/char/random.c 	crng->init_time = jiffies - CRNG_RESEED_INTERVAL - 1;
crng              896 drivers/char/random.c 	struct crng_state *crng;
crng              901 drivers/char/random.c 		crng = kmalloc_node(sizeof(struct crng_state),
crng              903 drivers/char/random.c 		spin_lock_init(&crng->lock);
crng              904 drivers/char/random.c 		crng_initialize(crng);
crng              905 drivers/char/random.c 		pool[i] = crng;
crng             1000 drivers/char/random.c static void crng_reseed(struct crng_state *crng, struct entropy_store *r)
crng             1018 drivers/char/random.c 	spin_lock_irqsave(&crng->lock, flags);
crng             1024 drivers/char/random.c 		crng->state[i+4] ^= buf.key[i] ^ rv;
crng             1027 drivers/char/random.c 	crng->init_time = jiffies;
crng             1028 drivers/char/random.c 	spin_unlock_irqrestore(&crng->lock, flags);
crng             1029 drivers/char/random.c 	if (crng == &primary_crng && crng_init < 2) {
crng             1051 drivers/char/random.c static void _extract_crng(struct crng_state *crng,
crng             1057 drivers/char/random.c 	    (time_after(crng_global_init_time, crng->init_time) ||
crng             1058 drivers/char/random.c 	     time_after(jiffies, crng->init_time + CRNG_RESEED_INTERVAL)))
crng             1059 drivers/char/random.c 		crng_reseed(crng, crng == &primary_crng ? &input_pool : NULL);
crng             1060 drivers/char/random.c 	spin_lock_irqsave(&crng->lock, flags);
crng             1062 drivers/char/random.c 		crng->state[14] ^= v;
crng             1063 drivers/char/random.c 	chacha20_block(&crng->state[0], out);
crng             1064 drivers/char/random.c 	if (crng->state[12] == 0)
crng             1065 drivers/char/random.c 		crng->state[13]++;
crng             1066 drivers/char/random.c 	spin_unlock_irqrestore(&crng->lock, flags);
crng             1071 drivers/char/random.c 	struct crng_state *crng = NULL;
crng             1075 drivers/char/random.c 		crng = crng_node_pool[numa_node_id()];
crng             1076 drivers/char/random.c 	if (crng == NULL)
crng             1078 drivers/char/random.c 		crng = &primary_crng;
crng             1079 drivers/char/random.c 	_extract_crng(crng, out);
crng             1086 drivers/char/random.c static void _crng_backtrack_protect(struct crng_state *crng,
crng             1098 drivers/char/random.c 	spin_lock_irqsave(&crng->lock, flags);
crng             1100 drivers/char/random.c 	d = &crng->state[4];
crng             1103 drivers/char/random.c 	spin_unlock_irqrestore(&crng->lock, flags);
crng             1108 drivers/char/random.c 	struct crng_state *crng = NULL;
crng             1112 drivers/char/random.c 		crng = crng_node_pool[numa_node_id()];
crng             1113 drivers/char/random.c 	if (crng == NULL)
crng             1115 drivers/char/random.c 		crng = &primary_crng;
crng             1116 drivers/char/random.c 	_crng_backtrack_protect(crng, tmp, used);