No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jason A. Donenfeld c23188facd random: unify batched entropy implementations
commit 3092adcef3ffd2ef59634998297ca8358461ebce upstream.

There are currently two separate batched entropy implementations, for
u32 and u64, with nearly identical code, with the goal of avoiding
unaligned memory accesses and letting the buffers be used more
efficiently. Having to maintain these two functions independently is a
bit of a hassle though, considering that they always need to be kept in
sync.

This commit factors them out into a type-generic macro, so that the
expansion produces the same code as before, such that diffing the
assembly shows no differences. This will also make it easier in the
future to add u16 and u8 batches.

This was initially tested using an always_inline function and letting
gcc constant fold the type size in, but the code gen was less efficient,
and in general it was more verbose and harder to follow. So this patch
goes with the boring macro solution, similar to what's already done for
the _wait functions in random.h.

Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-06-22 14:11:17 +02:00
arch xtensa: use fallback for random_get_entropy() instead of zero 2022-06-22 14:11:15 +02:00
block block: fix bio_clone_blkg_association() to associate with proper blkcg_gq 2022-06-14 18:11:50 +02:00
certs certs: Trigger creation of RSA module signing key if it's not an RSA key 2021-09-15 09:47:29 +02:00
crypto random: replace custom notifier chain with standard one 2022-06-22 14:11:13 +02:00
Documentation random: fix sysctl documentation nits 2022-06-22 14:11:14 +02:00
drivers random: unify batched entropy implementations 2022-06-22 14:11:17 +02:00
fs compat_ioctl: remove /dev/random commands 2022-06-22 14:11:03 +02:00
include random: move randomize_page() into mm where it belongs 2022-06-22 14:11:17 +02:00
init random: handle latent entropy and command line from random_init() 2022-06-22 14:11:17 +02:00
ipc ipc/mqueue: use get_tree_nodev() in mqueue_get_tree() 2022-06-14 18:11:41 +02:00
kernel timekeeping: Add raw clock fallback for random_get_entropy() 2022-06-22 14:11:15 +02:00
lib random: remove ratelimiting for in-kernel unseeded randomness 2022-06-22 14:11:17 +02:00
LICENSES
mm random: move randomize_page() into mm where it belongs 2022-06-22 14:11:17 +02:00
net tcp: fix tcp_mtup_probe_success vs wrong snd_cwnd 2022-06-14 18:12:03 +02:00
samples samples/kretprobes: Fix return value if register_kretprobe() failed 2021-11-17 09:48:39 +01:00
scripts scripts/gdb: change kernel config dumping method 2022-06-14 18:12:02 +02:00
security efi: Do not import certificates from UEFI Secure Boot for T2 Macs 2022-06-14 18:11:44 +02:00
sound ALSA: hda/conexant - Fix loopback issue with CX20632 2022-06-14 18:12:02 +02:00
tools netfilter: nat: really support inet nat without l3 address 2022-06-14 18:11:57 +02:00
usr
virt KVM: Prevent module exit until all VMs are freed 2022-04-15 14:18:27 +02:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: co-maintain random.c 2022-06-22 14:11:05 +02:00
Makefile Linux 5.4.199 2022-06-16 13:23:32 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.