Jason A. Donenfeld
c8b06c9242
UPSTREAM: random: split initialization into early step and later step
...
The full RNG initialization relies on some timestamps, made possible
with initialization functions like time_init() and timekeeping_init().
However, these are only available rather late in initialization.
Meanwhile, other things, such as memory allocator functions, make use of
the RNG much earlier.
So split RNG initialization into two phases. We can provide arch
randomness very early on, and then later, after timekeeping and such are
available, initialize the rest.
This ensures that, for example, slabs are properly randomized if RDRAND
is available. Without this, CONFIG_SLAB_FREELIST_RANDOM=y loses a degree
of its security, because its random seed is potentially deterministic,
since it hasn't yet incorporated RDRAND. It also makes it possible to
use a better seed in kfence, which currently relies on only the cycle
counter.
Another positive consequence is that on systems with RDRAND, running
with CONFIG_WARN_ALL_UNSEEDED_RANDOM=y results in no warnings at all.
One subtle side effect of this change is that on systems with no RDRAND,
RDTSC is now only queried by random_init() once, committing the moment
of the function call, instead of multiple times as before. This is
intentional, as the multiple RDTSCs in a loop before weren't
accomplishing very much, with jitter being better provided by
try_to_generate_entropy(). Plus, filling blocks with RDTSC is still
being done in extract_entropy(), which is necessarily called before
random bytes are served anyway.
Cc: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
(cherry picked from commit f62384995e4cb7703e5295779c44135c5311770d)
Change-Id: Ibf5ca2ddea8d853c108c6191803046cae8808dfa
[dereference23: Backport to 5.4]
Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
2026-05-07 17:24:10 +03:00
..
accessibility
acpi
This is the 5.4.302 stable release
2025-12-11 09:41:30 +00:00
amba
android
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
ata
ata: libata-scsi: Fix system suspend for a security locked drive
2025-12-03 12:45:21 +01:00
atm
atm: atmtcp: Prevent arbitrary write in atmtcp_recv_control().
2025-09-04 14:05:54 +02:00
auxdisplay
base
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
bcma
block
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
bluetooth
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
bus
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
cdrom
cdrom: fix an incorrect __user annotation on cdrom_sysctl_info
2026-02-01 20:36:52 -08:00
char
UPSTREAM: random: split initialization into early step and later step
2026-05-07 17:24:10 +03:00
clk
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
clocksource
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
connector
counter
cpufreq
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
cpuidle
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
crypto
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
2026-04-30 20:46:30 +03:00
dax
dca
devfreq
devfreq: bimc-bwmon: Don't free/reallocate IRQ during suspend/resume
2026-05-07 14:20:06 +00:00
dio
BACKPORT: maccess: rename probe_kernel_{read,write} to copy_{from,to}_kernel_nofault
2026-01-14 18:13:21 -08:00
dma
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
dma-buf
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
edac
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
eisa
extcon
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
firewire
firmware
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
fpga
fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable()
2025-08-28 16:21:32 +02:00
fsi
gnss
gpio
gpio: pca953x: fix IRQ storm on system wake up
2025-09-09 18:44:00 +02:00
gpu
kgsl: Avoid use after free in kgsl_destroy_ion()
2026-05-05 20:02:21 +03:00
greybus
hid
usb: Undo qcom damage
2026-04-30 21:08:27 +03:00
hsi
hv
hwmon
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
hwspinlock
hwtracing
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
i2c
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
i3c
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
ide
idle
iio
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
infiniband
This is the 5.4.301 stable release
2025-10-30 07:52:10 +00:00
input
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
interconnect
iommu
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
ipack
irqchip
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
isdn
isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()
2025-12-03 12:45:19 +01:00
leds
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
lightnvm
BACKPORT: mm: remove the pgprot argument to __vmalloc
2026-01-14 17:48:09 -08:00
macintosh
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
mailbox
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
mcb
md
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
media
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
2026-04-30 20:46:30 +03:00
memory
memory: samsung: exynos-srom: Fix of_iomap leak in exynos_srom_probe
2025-10-29 14:00:00 +01:00
memstick
memstick: Add timeout to prevent indefinite waiting
2025-12-03 12:45:06 +01:00
message
mfd
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
misc
BACKPORT: dsp-kernel: Separate overlap handling for ION and non-ION buffers
2026-05-05 20:02:22 +03:00
mmc
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
mtd
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
2026-04-30 20:46:30 +03:00
mux
net
Revert "wifi: cfg80211: Increase akm_suites array size in"
2026-05-05 20:02:19 +03:00
nfc
ntb
nubus
nvdimm
nvme
nvmem
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
of
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
opp
oprofile
UPSTREAM: module: Fix up module_notifier return values
2026-01-14 18:12:53 -08:00
parisc
parport
BACKPORT: sysctl: pass kernel pointers to ->proc_handler
2025-12-23 13:36:15 -08:00
pci
Merge f1b974d142 on remote branch
2026-02-26 07:47:51 -08:00
pcmcia
pcmcia: omap_cf: Mark driver struct with __refdata to prevent section mismatch
2025-10-02 13:34:30 +02:00
perf
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
phy
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
pinctrl
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
platform
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/kernel/msm-5.4 into android13-5.4-lahaina
2026-04-30 20:46:30 +03:00
pnp
power
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
powercap
pps
pps: fix warning in pps_register_cdev when register device fail
2025-10-29 13:59:48 +01:00
ps3
ptp
pwm
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
rapidio
ras
regulator
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
remoteproc
Merge branch 'android11-5.4-lts' of https://android.googlesource.com/kernel/common into android13-5.4-lahaina
2025-12-11 01:41:51 -08:00
reset
rpmsg
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
rtc
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
s390
s390/ctcm: Fix double-kfree
2025-12-03 12:45:20 +01:00
sbus
scsi
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
sfi
sh
siox
slimbus
Merge android11-5.4.295(387dbb9) into msm-5.4
2025-09-29 05:22:53 -07:00
soc
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
soundwire
spi
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
spmi
ssb
staging
Merge tag 'LA.UM.9.14.1.r1-21100-QCM6490.QISI15.0' of https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/wlan/qcacld-3.0 into android13-5.4-lahaina
2026-04-30 21:12:43 +03:00
target
This is the 5.4.302 stable release
2025-12-11 09:41:30 +00:00
tc
tee
tee: allow a driver to allocate a tee_device without a pool
2025-12-03 12:45:07 +01:00
thermal
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
thunderbolt
tty
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
uio
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
usb
usb: Undo qcom damage
2026-04-30 21:08:27 +03:00
vfio
vhost
This is the 5.4.298 stable release
2025-09-05 06:54:24 +00:00
video
Merge android11-5.4.302(91d385eb) into msm-5.4
2026-01-30 11:41:11 +05:30
virt
virtio
visorbus
vlynq
vme
w1
watchdog
watchdog: mpc8xxx_wdt: Reload the watchdog timer when enabling the watchdog
2025-10-29 13:59:48 +01:00
xen
xen/events: Update virq_to_irq on migration
2025-10-29 13:59:56 +01:00
zorro
Kconfig
Makefile
OWNERS