android_kernel_google_msm/kernel/irq
Theodore Ts'o 0110bbfbc8 random: make 'add_interrupt_randomness()' do something sane
commit 775f4b297b upstream.

We've been moving away from add_interrupt_randomness() for various
reasons: it's too expensive to do on every interrupt, and flooding the
CPU with interrupts could theoretically cause bogus floods of entropy
from a somewhat externally controllable source.

This solves both problems by limiting the actual randomness addition
to just once a second or after 64 interrupts, whicever comes first.
During that time, the interrupt cycle data is buffered up in a per-cpu
pool.  Also, we make sure the the nonblocking pool used by urandom is
initialized before we start feeding the normal input pool.  This
assures that /dev/urandom is returning unpredictable data as soon as
possible.

(Based on an original patch by Linus, but significantly modified by
tytso.)

Tested-by: Eric Wustrow <ewust@umich.edu>
Reported-by: Eric Wustrow <ewust@umich.edu>
Reported-by: Nadia Heninger <nadiah@cs.ucsd.edu>
Reported-by: Zakir Durumeric <zakir@umich.edu>
Reported-by: J. Alex Halderman <jhalderm@umich.edu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-15 08:10:10 -07:00
..
autoprobe.c genirq: Handle pending irqs in irq_startup() 2012-02-15 11:56:59 +01:00
chip.c genirq: export handle_edge_irq() and irq_to_desc() 2012-05-15 08:10:07 -07:00
debug.h irq: hide debug macros so they don't collide with others. 2012-04-23 12:30:03 -04:00
devres.c devres: fix possible use after free 2011-07-25 20:57:14 -07:00
dummychip.c
generic-chip.c kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure 2011-10-31 19:30:05 -04:00
handle.c random: make 'add_interrupt_randomness()' do something sane 2012-08-15 08:10:10 -07:00
internals.h Merge branch 'linus' into irq/core 2012-03-13 16:35:16 +01:00
irqdesc.c genirq: export handle_edge_irq() and irq_to_desc() 2012-05-15 08:10:07 -07:00
irqdomain.c irq_domain: fix type mismatch in debugfs output format 2012-04-12 16:25:48 -06:00
Kconfig irq_domain: correct the debugfs file name 2012-04-10 22:39:17 -06:00
Makefile irq: add irq_domain translation infrastructure 2011-07-28 01:32:04 -06:00
manage.c genirq: Respect NUMA node affinity in setup_irq_irq affinity() 2012-03-29 11:31:53 +02:00
migration.c genirq: Adjust irq thread affinity on IRQ_SET_MASK_OK_NOCOPY return value 2012-03-30 23:13:46 +02:00
pm.c genirq: Add IRQF_RESUME_EARLY and resume such IRQs earlier 2011-10-17 11:42:49 +02:00
proc.c irq: Remove smp_affinity_list when unregister irq proc 2011-05-26 13:15:28 +02:00
resend.c
settings.h genirq: Add support for per-cpu dev_id interrupts 2011-10-03 15:35:26 +02:00
spurious.c module_param: make bool parameters really bool (core code) 2012-01-13 09:32:18 +10:30