Linus Torvalds
8a0a9bd4db
random: make get_random_int() more random
...
It's a really simple patch that basically just open-codes the current
"secure_ip_id()" call, but when open-coding it we now use a _static_
hashing area, so that it gets updated every time.
And to make sure somebody can't just start from the same original seed of
all-zeroes, and then do the "half_md4_transform()" over and over until
they get the same sequence as the kernel has, each iteration also mixes in
the same old "current->pid + jiffies" we used - so we should now have a
regular strong pseudo-number generator, but we also have one that doesn't
have a single seed.
Note: the "pid + jiffies" is just meant to be a tiny tiny bit of noise. It
has no real meaning. It could be anything. I just picked the previous
seed, it's just that now we keep the state in between calls and that will
feed into the next result, and that should make all the difference.
I made that hash be a per-cpu data just to avoid cache-line ping-pong:
having multiple CPU's write to the same data would be fine for randomness,
and add yet another layer of chaos to it, but since get_random_int() is
supposed to be a fast interface I did it that way instead. I considered
using "__raw_get_cpu_var()" to avoid any preemption overhead while still
getting the hash be _mostly_ ping-pong free, but in the end good taste won
out.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-05-07 11:59:06 -07:00
..
accessibility
acpi
acpica: validate package element more carefully in acpi_rs_get_pci_routing_table_length
2009-05-02 11:48:37 -07:00
amba
ata
[libata] fix build error on drivers/ata/pata_legacy.c
2009-04-17 19:05:33 -04:00
atm
Replace all DMA_nBIT_MASK macro with DMA_BIT_MASK(n)
2009-04-13 15:04:33 -07:00
auxdisplay
base
drivers/base/iommu.c: add missing includes
2009-05-06 16:36:10 -07:00
block
hd: fix locking
2009-04-28 20:24:20 +02:00
bluetooth
cdrom
char
random: make get_random_int() more random
2009-05-07 11:59:06 -07:00
clocksource
clocksource: pass clocksource to read() callback
2009-04-21 13:41:47 -07:00
connector
cpufreq
cpuidle
crypto
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
dca
dio
dma
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
edac
edac: ppc mpc85xx fix mc err detect
2009-04-21 13:41:51 -07:00
eisa
firewire
firmware
ibft: fix the display of a few fields in the NIC attribute structure in sysfs
2009-05-02 15:36:10 -07:00
gpio
gpu
Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
2009-05-05 17:02:05 -07:00
hid
HID: fix oops in hid_check_keys_pressed()
2009-05-02 00:02:57 +02:00
hwmon
hwmon: sht15 humidity sensor driver
2009-04-13 15:04:29 -07:00
i2c
i2c-algo-pca: Let PCA9564 recover from unacked data byte (state 0x30)
2009-05-05 08:39:25 +02:00
ide
ide-cd: fix REQ_QUIET tests in cdrom_decode_status
2009-04-30 18:24:34 +02:00
idle
dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)
2009-04-07 08:31:10 -07:00
ieee1394
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
infiniband
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
2009-05-02 16:36:34 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2009-05-02 16:35:45 -07:00
isdn
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2009-04-29 07:55:45 -07:00
leds
leds: just ignore invalid GPIOs in leds-gpio
2009-04-08 14:13:48 +01:00
lguest
lguest: fix guest crash on non-linear addresses in gdt pvops
2009-04-19 23:14:01 +09:30
macintosh
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
2009-04-24 08:16:05 -07:00
mca
md
Merge branch 'for-linus' of git://neil.brown.name/md
2009-04-20 08:37:37 -07:00
media
V4L/DVB (11652): au0828: fix kernel oops regression on USB disconnect.
2009-04-29 16:02:51 -03:00
memstick
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
message
scsi: mpt: suppress debugobjects warning
2009-04-21 13:41:50 -07:00
mfd
misc
isl29003: fix resume functionality
2009-05-06 16:36:10 -07:00
mmc
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
2009-05-05 08:23:16 -07:00
mtd
cafe_nand: Fix warning
2009-04-24 07:52:08 -07:00
net
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
2009-05-05 08:26:10 -07:00
nubus
of
oprofile
parisc
parport: Fix various uses of parport_pc
2009-04-14 08:48:50 -07:00
parport
parport: Use the PCI IRQ if offered
2009-04-07 08:44:06 -07:00
pci
PCI: only save/restore existent registers in the PCIe capability
2009-04-22 15:59:41 -07:00
pcmcia
[ARM] 5458/1: pcmcia: pxa2xx-sharpsl: check if we do have Scoop config
2009-04-23 23:25:40 +01:00
platform
Merge branch 'sony-laptop' into release
2009-04-24 01:34:52 -04:00
pnp
dma-mapping: replace all DMA_24BIT_MASK macro with DMA_BIT_MASK(24)
2009-04-07 08:31:12 -07:00
power
Merge git://git.infradead.org/battery-2.6
2009-04-08 17:45:02 -07:00
ps3
rapidio
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
regulator
regulator: Fix default constraints for fixed voltage regulators
2009-04-28 18:58:08 +01:00
rtc
rtc-cmos: fix printk output
2009-04-21 13:41:50 -07:00
s390
[SCSI] zfcp: Fix oops when port disappears
2009-04-27 10:07:37 -05:00
sbus
sbus: changed ioctls to unlocked
2009-04-14 19:46:19 -07:00
scsi
[SCSI] libosd: OSD2r05: on-the-wire changes for latest OSD2 revision 5.
2009-04-27 11:05:49 -05:00
serial
Merge master.kernel.org:/home/rmk/linux-2.6-arm
2009-05-07 10:54:32 -07:00
sh
sn
dma-mapping: replace all DMA_64BIT_MASK macro with DMA_BIT_MASK(64)
2009-04-07 08:31:10 -07:00
spi
spi: pxa2xx: limit reaches -1
2009-04-21 13:41:49 -07:00
ssb
staging
go7007: Convert to the new i2c device binding model
2009-04-21 21:47:22 +02:00
tc
telephony
thermal
uio
UIO: fix specific device driver missing statement for depmod
2009-04-16 16:17:11 -07:00
usb
USB: otg: Fix bug on remove path without transceiver
2009-04-23 14:15:31 -07:00
uwb
dma-mapping: replace all DMA_32BIT_MASK macro with DMA_BIT_MASK(32)
2009-04-07 08:31:11 -07:00
video
Merge master.kernel.org:/home/rmk/linux-2.6-arm
2009-05-07 10:54:32 -07:00
virtio
virtio: fix suspend when using virtio_balloon
2009-04-19 23:14:01 +09:30
w1
watchdog
[ARM] 5460/1: Orion: reduce namespace pollution
2009-04-23 23:25:41 +01:00
xen
[IA64] xen_domu_defconfig: fix build issues/warnings
2009-05-05 11:43:13 -07:00
zorro
Kconfig
Makefile
V4L/DVB (11561a): move media after i2c
2009-04-29 15:41:13 -03:00