Lines Matching refs:state
75 struct vgetrandom_state *state = opaque_state; in __cvdso_getrandom_data() local
84 params->size_of_opaque_state = sizeof(*state); in __cvdso_getrandom_data()
93 if (unlikely(((unsigned long)opaque_state & ~PAGE_MASK) + sizeof(*state) > PAGE_SIZE)) in __cvdso_getrandom_data()
101 if (unlikely(opaque_len != sizeof(*state))) in __cvdso_getrandom_data()
128 in_use = READ_ONCE(state->in_use); in __cvdso_getrandom_data()
132 WRITE_ONCE(state->in_use, true); in __cvdso_getrandom_data()
145 if (unlikely(state->generation != current_generation)) { in __cvdso_getrandom_data()
154 WRITE_ONCE(state->generation, current_generation); in __cvdso_getrandom_data()
163 if (getrandom_syscall(state->key, sizeof(state->key), 0) != sizeof(state->key)) { in __cvdso_getrandom_data()
169 WRITE_ONCE(state->generation, 0); in __cvdso_getrandom_data()
175 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
184 state->pos = sizeof(state->batch); in __cvdso_getrandom_data()
194 batch_len = min_t(size_t, sizeof(state->batch) - state->pos, len); in __cvdso_getrandom_data()
197 memcpy_and_zero_src(buffer, state->batch + state->pos, batch_len); in __cvdso_getrandom_data()
198 state->pos += batch_len; in __cvdso_getrandom_data()
214 if (unlikely(READ_ONCE(state->generation) != READ_ONCE(rng_info->generation))) { in __cvdso_getrandom_data()
220 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
233 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
240 __arch_chacha20_blocks_nostack(buffer, state->key, counter, nblocks); in __cvdso_getrandom_data()
245 BUILD_BUG_ON(sizeof(state->batch_key) % CHACHA_BLOCK_SIZE != 0); in __cvdso_getrandom_data()
248 __arch_chacha20_blocks_nostack(state->batch_key, state->key, counter, in __cvdso_getrandom_data()
249 sizeof(state->batch_key) / CHACHA_BLOCK_SIZE); in __cvdso_getrandom_data()
252 state->pos = 0; in __cvdso_getrandom_data()