Lines Matching refs:fast_pool
601 struct fast_pool { struct
613 static void fast_mix(struct fast_pool *f) in fast_mix() argument
1207 static DEFINE_PER_CPU(struct fast_pool, irq_randomness);
1230 static __u32 get_reg(struct fast_pool *f, struct pt_regs *regs) in get_reg()
1248 struct fast_pool *fast_pool = this_cpu_ptr(&irq_randomness); in add_interrupt_randomness() local
1256 cycles = get_reg(fast_pool, regs); in add_interrupt_randomness()
1259 fast_pool->pool[0] ^= cycles ^ j_high ^ irq; in add_interrupt_randomness()
1260 fast_pool->pool[1] ^= now ^ c_high; in add_interrupt_randomness()
1262 fast_pool->pool[2] ^= ip; in add_interrupt_randomness()
1263 fast_pool->pool[3] ^= (sizeof(ip) > 4) ? ip >> 32 : in add_interrupt_randomness()
1264 get_reg(fast_pool, regs); in add_interrupt_randomness()
1266 fast_mix(fast_pool); in add_interrupt_randomness()
1270 if ((fast_pool->count >= 64) && in add_interrupt_randomness()
1271 crng_fast_load((char *) fast_pool->pool, in add_interrupt_randomness()
1272 sizeof(fast_pool->pool))) { in add_interrupt_randomness()
1273 fast_pool->count = 0; in add_interrupt_randomness()
1274 fast_pool->last = now; in add_interrupt_randomness()
1279 if ((fast_pool->count < 64) && in add_interrupt_randomness()
1280 !time_after(now, fast_pool->last + HZ)) in add_interrupt_randomness()
1287 fast_pool->last = now; in add_interrupt_randomness()
1288 __mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool)); in add_interrupt_randomness()
1291 fast_pool->count = 0; in add_interrupt_randomness()