Lines Matching refs:state
72 struct vgetrandom_state *state = opaque_state; in __cvdso_getrandom_data() local
81 params->size_of_opaque_state = sizeof(*state); in __cvdso_getrandom_data()
90 if (unlikely(((unsigned long)opaque_state & ~PAGE_MASK) + sizeof(*state) > PAGE_SIZE)) in __cvdso_getrandom_data()
98 if (unlikely(opaque_len != sizeof(*state))) in __cvdso_getrandom_data()
125 in_use = READ_ONCE(state->in_use); in __cvdso_getrandom_data()
129 WRITE_ONCE(state->in_use, true); in __cvdso_getrandom_data()
142 if (unlikely(state->generation != current_generation)) { in __cvdso_getrandom_data()
151 WRITE_ONCE(state->generation, current_generation); in __cvdso_getrandom_data()
160 if (getrandom_syscall(state->key, sizeof(state->key), 0) != sizeof(state->key)) { in __cvdso_getrandom_data()
166 WRITE_ONCE(state->generation, 0); in __cvdso_getrandom_data()
172 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
181 state->pos = sizeof(state->batch); in __cvdso_getrandom_data()
191 batch_len = min_t(size_t, sizeof(state->batch) - state->pos, len); in __cvdso_getrandom_data()
194 memcpy_and_zero_src(buffer, state->batch + state->pos, batch_len); in __cvdso_getrandom_data()
195 state->pos += batch_len; in __cvdso_getrandom_data()
211 if (unlikely(READ_ONCE(state->generation) != READ_ONCE(rng_info->generation))) { in __cvdso_getrandom_data()
217 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
230 WRITE_ONCE(state->in_use, false); in __cvdso_getrandom_data()
237 __arch_chacha20_blocks_nostack(buffer, state->key, counter, nblocks); in __cvdso_getrandom_data()
242 BUILD_BUG_ON(sizeof(state->batch_key) % CHACHA_BLOCK_SIZE != 0); in __cvdso_getrandom_data()
245 __arch_chacha20_blocks_nostack(state->batch_key, state->key, counter, in __cvdso_getrandom_data()
246 sizeof(state->batch_key) / CHACHA_BLOCK_SIZE); in __cvdso_getrandom_data()
249 state->pos = 0; in __cvdso_getrandom_data()