diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 22:07:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-31 22:07:42 -0400 |
commit | 3e9a97082fa639394e905e1fc4a0a7f719ca7644 (patch) | |
tree | 9985cfa26e0597128eae03a2ee7e4614efea571f /arch/um/drivers/line.c | |
parent | 941c8726e4e737e74d418ccec3d8e7b946a65541 (diff) | |
parent | d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5 (diff) |
Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random
Pull random subsystem patches from Ted Ts'o:
"This patch series contains a major revamp of how we collect entropy
from interrupts for /dev/random and /dev/urandom.
The goal is to addresses weaknesses discussed in the paper "Mining
your Ps and Qs: Detection of Widespread Weak Keys in Network Devices",
by Nadia Heninger, Zakir Durumeric, Eric Wustrow, J. Alex Halderman,
which will be published in the Proceedings of the 21st Usenix Security
Symposium, August 2012. (See https://factorable.net for more
information and an extended version of the paper.)"
Fix up trivial conflicts due to nearby changes in
drivers/{mfd/ab3100-core.c, usb/gadget/omap_udc.c}
* tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: (33 commits)
random: mix in architectural randomness in extract_buf()
dmi: Feed DMI table to /dev/random driver
random: Add comment to random_initialize()
random: final removal of IRQF_SAMPLE_RANDOM
um: remove IRQF_SAMPLE_RANDOM which is now a no-op
sparc/ldc: remove IRQF_SAMPLE_RANDOM which is now a no-op
[ARM] pxa: remove IRQF_SAMPLE_RANDOM which is now a no-op
board-palmz71: remove IRQF_SAMPLE_RANDOM which is now a no-op
isp1301_omap: remove IRQF_SAMPLE_RANDOM which is now a no-op
pxa25x_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
omap_udc: remove IRQF_SAMPLE_RANDOM which is now a no-op
goku_udc: remove IRQF_SAMPLE_RANDOM which was commented out
uartlite: remove IRQF_SAMPLE_RANDOM which is now a no-op
drivers: hv: remove IRQF_SAMPLE_RANDOM which is now a no-op
xen-blkfront: remove IRQF_SAMPLE_RANDOM which is now a no-op
n2_crypto: remove IRQF_SAMPLE_RANDOM which is now a no-op
pda_power: remove IRQF_SAMPLE_RANDOM which is now a no-op
i2c-pmcmsp: remove IRQF_SAMPLE_RANDOM which is now a no-op
input/serio/hp_sdc.c: remove IRQF_SAMPLE_RANDOM which is now a no-op
mfd: remove IRQF_SAMPLE_RANDOM which is now a no-op
...
Diffstat (limited to 'arch/um/drivers/line.c')
-rw-r--r-- | arch/um/drivers/line.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index acfd0e0fd0c9..ac9d25c8dc01 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -362,18 +362,18 @@ static irqreturn_t line_write_interrupt(int irq, void *data) | |||
362 | int line_setup_irq(int fd, int input, int output, struct line *line, void *data) | 362 | int line_setup_irq(int fd, int input, int output, struct line *line, void *data) |
363 | { | 363 | { |
364 | const struct line_driver *driver = line->driver; | 364 | const struct line_driver *driver = line->driver; |
365 | int err = 0, flags = IRQF_SHARED | IRQF_SAMPLE_RANDOM; | 365 | int err = 0; |
366 | 366 | ||
367 | if (input) | 367 | if (input) |
368 | err = um_request_irq(driver->read_irq, fd, IRQ_READ, | 368 | err = um_request_irq(driver->read_irq, fd, IRQ_READ, |
369 | line_interrupt, flags, | 369 | line_interrupt, IRQF_SHARED, |
370 | driver->read_irq_name, data); | 370 | driver->read_irq_name, data); |
371 | if (err) | 371 | if (err) |
372 | return err; | 372 | return err; |
373 | if (output) | 373 | if (output) |
374 | err = um_request_irq(driver->write_irq, fd, IRQ_WRITE, | 374 | err = um_request_irq(driver->write_irq, fd, IRQ_WRITE, |
375 | line_write_interrupt, flags, | 375 | line_write_interrupt, IRQF_SHARED, |
376 | driver->write_irq_name, data); | 376 | driver->write_irq_name, data); |
377 | return err; | 377 | return err; |
378 | } | 378 | } |
379 | 379 | ||
@@ -779,8 +779,7 @@ void register_winch_irq(int fd, int tty_fd, int pid, struct tty_struct *tty, | |||
779 | .stack = stack }); | 779 | .stack = stack }); |
780 | 780 | ||
781 | if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt, | 781 | if (um_request_irq(WINCH_IRQ, fd, IRQ_READ, winch_interrupt, |
782 | IRQF_SHARED | IRQF_SAMPLE_RANDOM, | 782 | IRQF_SHARED, "winch", winch) < 0) { |
783 | "winch", winch) < 0) { | ||
784 | printk(KERN_ERR "register_winch_irq - failed to register " | 783 | printk(KERN_ERR "register_winch_irq - failed to register " |
785 | "IRQ\n"); | 784 | "IRQ\n"); |
786 | goto out_free; | 785 | goto out_free; |