Jason A. Donenfeld
ed20ec409e
random: clear fast pool, crng, and batches in cpuhp bring up
...
commit 3191dd5a1179ef0fad5a050a1702ae98b6251e8f upstream.
For the irq randomness fast pool, rather than having to use expensive
atomics, which were visibly the most expensive thing in the entire irq
handler, simply take care of the extreme edge case of resetting count to
zero in the cpuhp online handler, just after workqueues have been
reenabled. This simplifies the code a bit and lets us use vanilla
variables rather than atomics, and performance should be improved.
As well, very early on when the CPU comes up, while interrupts are still
disabled, we clear out the per-cpu crng and its batches, so that it
always starts with fresh randomness.
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Theodore Ts'o <tytso@mit.edu>
Cc: Sultan Alsawaf <sultan@kerneltoast.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-25 11:45:10 +02:00
..
bpf
bpf: Add kconfig knob for disabling unpriv bpf by default
2022-02-16 12:43:54 +01:00
configs
config: android: enable CONFIG_SECCOMP
2016-10-11 15:06:32 -07:00
debug
kdb: Make memory allocations more robust
2021-03-03 17:44:31 +01:00
events
perf: Fix sys_perf_event_open() race against self
2022-05-25 08:39:49 +02:00
gcov
gcov: add support for GCC 10.1
2020-09-23 08:46:14 +02:00
irq
random: remove unused irq_flags argument from add_interrupt_randomness()
2022-06-25 11:45:04 +02:00
livepatch
livepatch/module: make TAINT_LIVEPATCH module-specific
2016-08-26 14:42:08 +02:00
locking
locking/lockdep: Avoid RCU-induced noinstr fail
2021-11-26 11:48:27 +01:00
power
PM: suspend: fix return value of __setup handler
2022-04-20 09:06:31 +02:00
printk
printk: fix return value of printk.devkmsg __setup handler
2022-04-20 09:06:33 +02:00
rcu
rcuperf: Fix cleanup path for invalid perf_type strings
2019-05-31 06:48:30 -07:00
sched
sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
2022-04-20 09:06:32 +02:00
time
timekeeping: Really make sure wall_to_monotonic isn't positive
2021-12-22 09:05:14 +01:00
trace
tracing: Avoid adding tracer option before update_tracer_options
2022-06-14 16:52:38 +02:00
.gitignore
acct.c
kernel/acct.c: fix the acct->needcheck check in check_free_space()
2018-01-10 09:29:51 +01:00
async.c
kernel/async.c: revert "async: simplify lowest_in_progress()"
2018-02-17 13:21:18 +01:00
audit.c
audit: fix a net reference leak in audit_list_rules_send()
2021-04-07 12:05:41 +02:00
audit.h
audit: fix a net reference leak in audit_list_rules_send()
2021-04-07 12:05:41 +02:00
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit: CONFIG_CHANGE don't log internal bookkeeping as an event
2020-10-01 20:40:07 +02:00
auditfilter.c
audit: fix a net reference leak in audit_list_rules_send()
2021-04-07 12:05:41 +02:00
auditsc.c
audit: print empty EXECVE args
2019-11-28 18:28:55 +01:00
backtracetest.c
bounds.c
kbuild: fix kernel/bounds.c 'W=1' warning
2018-11-13 11:16:57 -08:00
capability.c
ptrace: Capture the ptracer's creds not PT_PTRACE_CAP
2017-01-06 10:40:13 +01:00
cgroup.c
cgroup-v1: Require capabilities to set release_agent
2022-02-11 08:41:17 +01:00
cgroup_freezer.c
cgroup_pids.c
cgroup: pids: use atomic64_t for pids->limit
2019-12-21 10:42:02 +01:00
compat.c
configs.c
context_tracking.c
cpu.c
random: clear fast pool, crng, and batches in cpuhp bring up
2022-06-25 11:45:10 +02:00
cpu_pm.c
kernel/cpu_pm: Fix uninitted local in cpu_pm
2020-06-20 10:24:21 +02:00
cpuset.c
sched/cpuset/pm: Fix cpuset vs. suspend-resume bugs
2017-10-12 11:51:25 +02:00
crash_dump.c
cred.c
memcg: account security cred as well to kmemcg
2020-01-12 11:24:13 +01:00
delayacct.c
dma.c
exec_domain.c
exit.c
futex: Mark the begin of futex exit explicitly
2021-02-03 23:19:49 +01:00
extable.c
kernel/extable.c: mark core_kernel_text notrace
2017-07-21 07:42:21 +02:00
fork.c
mm/hugetlb: initialize hugetlb_usage in mm_init
2021-09-22 11:43:08 +02:00
freezer.c
freezer, oom: check TIF_MEMDIE on the correct task
2016-07-28 16:07:41 -07:00
futex.c
mm, futex: fix shared futex pgoff on shmem huge page
2021-07-11 12:46:40 +02:00
groups.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
hung_task.c
kernel: hung_task.c: disable on suspend
2019-04-20 09:07:52 +02:00
irq_work.c
jump_label.c
jump_label: Invoke jump_label_test() via early_initcall()
2017-12-14 09:28:24 +01:00
kallsyms.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kcov: ensure irq code sees a valid area
2018-08-03 07:55:12 +02:00
kexec.c
kexec: allow architectures to override boot mapping
2016-08-02 19:35:27 -04:00
kexec_core.c
objtool, x86: Add several functions and files to the objtool whitelist
2018-06-05 10:28:57 +02:00
kexec_file.c
kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
2021-05-22 10:40:31 +02:00
kexec_internal.h
kmod.c
usermodehelper: reset umask to default before executing user process
2020-10-14 09:48:14 +02:00
kprobes.c
kprobes: Limit max data_size of the kretprobe instances
2021-12-08 08:45:06 +01:00
ksysfs.c
kexec: add a kexec_crash_loaded() function
2016-08-02 19:35:30 -04:00
kthread.c
kthread: prevent deadlock when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync()
2021-07-11 12:46:41 +02:00
latencytop.c
Makefile
elfcore: fix building with clang
2021-02-10 09:09:25 +01:00
membarrier.c
Fix: Disable sys_membarrier when nohz_full is enabled
2017-03-12 06:41:45 +01:00
memremap.c
mm, devm_memremap_pages: kill mapping "System RAM" support
2019-01-13 10:03:51 +01:00
module-internal.h
module.c
module: Ignore _GLOBAL_OFFSET_TABLE_ when warning for undefined symbols
2021-03-03 17:44:44 +01:00
module_signing.c
notifier.c
x86/mm: split vmalloc_sync_all()
2020-04-02 17:20:26 +02:00
nsproxy.c
padata.c
padata: purge get_cpu and reorder_via_wq from padata_do_serial
2020-05-27 16:41:53 +02:00
panic.c
panic: ensure preemption is disabled during panic()
2019-10-17 13:42:25 -07:00
params.c
pid.c
pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid()
2018-04-13 19:47:53 +02:00
pid_namespace.c
memcg: enable accounting for pids in nested pid namespaces
2021-09-22 11:43:08 +02:00
profile.c
profiling: fix shift-out-of-bounds bugs
2021-09-26 13:36:18 +02:00
ptrace.c
ptrace: Reimplement PTRACE_KILL by always sending SIGKILL
2022-06-14 16:52:28 +02:00
range.c
reboot.c
reboot: fix overflow parsing reboot cpu number
2020-11-18 18:26:32 +01:00
relay.c
kernel/relay.c: fix memleak on destroy relay channel
2020-08-26 10:29:03 +02:00
resource.c
resource: fix integer overflow at reallocation
2018-04-24 09:34:09 +02:00
seccomp.c
seccomp: Add missing return in non-void function
2021-03-03 17:44:43 +01:00
signal.c
signal: Remove the bogus sigkill_pending in ptrace_stop
2021-11-26 11:48:24 +01:00
smp.c
smp: Fix offline cpu check in flush_smp_call_function_queue()
2022-04-20 09:06:46 +02:00
smpboot.c
kthread/smpboot: do not park in kthread_create_on_cpu()
2016-10-11 15:06:33 -07:00
smpboot.h
softirq.c
Mark HI and TASKLET softirq synchronous
2018-08-15 18:14:42 +02:00
stacktrace.c
stacktrace, lockdep: Fix address, newline ugliness
2017-02-14 15:25:42 -08:00
stop_machine.c
stop_machine: Use raw spinlocks
2018-08-03 07:55:24 +02:00
sys.c
prctl: allow to setup brk for et_dyn executables
2021-09-26 13:36:18 +02:00
sys_ni.c
x86/pkeys: Fix pkeys build breakage for some non-x86 arches
2016-09-13 14:41:36 +02:00
sysctl.c
x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting
2022-03-11 10:03:31 +01:00
sysctl_binary.c
task_work.c
task_work: use READ_ONCE/lockless_dereference, avoid pi_lock if !task_works
2016-08-02 19:35:02 -04:00
taskstats.c
taskstats: fix data-race
2020-01-12 11:24:12 +01:00
test_kprobes.c
torture.c
torture: Convert torture_shutdown() to hrtimer
2016-08-22 10:01:49 -07:00
tracepoint.c
tracepoint: Do not fail unregistering a probe due to memory failure
2021-03-03 17:44:38 +01:00
tsacct.c
taskstats: Cleanup the use of task->exit_code
2022-02-23 11:56:40 +01:00
ucount.c
kernel/ucount.c: mark user_header with kmemleak_ignore()
2017-06-17 06:41:51 +02:00
uid16.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
up.c
smp: Add function to execute a function synchronously on a CPU
2016-09-05 13:52:39 +02:00
user-return-notifier.c
user.c
user_namespace.c
userns: move user access out of the mutex
2018-09-09 20:01:24 +02:00
utsname.c
Merge branch 'nsfs-ioctls' into HEAD
2016-09-22 20:00:36 -05:00
utsname_sysctl.c
sys: don't hold uts_sem while accessing userspace memory
2018-09-09 20:01:24 +02:00
watchdog.c
kernel/watchdog: prevent false hardlockup on overloaded system
2017-06-17 06:41:57 +02:00
watchdog_hld.c
kernel/watchdog: prevent false hardlockup on overloaded system
2017-06-17 06:41:57 +02:00
workqueue.c
workqueue: make workqueue available early during boot
2022-06-25 11:45:09 +02:00
workqueue_internal.h
workqueue: Fix NULL pointer dereference
2017-11-15 15:53:17 +01:00