No description
Find a file
Jason A. Donenfeld 43e546ef79 x86/tsc: Use fallback for random_get_entropy() instead of zero
commit 3bd4abc07a upstream.

In the event that random_get_entropy() can't access a cycle counter or
similar, falling back to returning 0 is suboptimal. Instead, fallback
to calling random_get_entropy_fallback(), which isn't extremely high
precision or guaranteed to be entropic, but is certainly better than
returning zero all the time.

If CONFIG_X86_TSC=n, then it's possible for the kernel to run on systems
without RDTSC, such as 486 and certain 586, so the fallback code is only
required for that case.

As well, fix up both the new function and the get_cycles() function from
which it was derived to use cpu_feature_enabled() rather than
boot_cpu_has(), and use !IS_ENABLED() instead of #ifndef.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: x86@kernel.org
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-04-19 17:49:11 +08:00
arch x86/tsc: Use fallback for random_get_entropy() instead of zero 2023-04-19 17:49:11 +08:00
block iocost: don't reset the inuse weight of under-weighted debtors 2023-04-19 17:48:22 +08:00
certs certs: Add support for using elliptic curve keys for signing modules 2021-08-23 19:55:42 +03:00
crypto random: replace custom notifier chain with standard one 2023-04-19 17:49:09 +08:00
Documentation random: fix sysctl documentation nits 2023-04-19 17:49:10 +08:00
drivers random: document crng_fast_key_erasure() destination possibility 2023-04-19 17:49:10 +08:00
fs afs: Fix afs_getattr() to refetch file status if callback break occurred 2023-04-19 17:49:02 +08:00
include timekeeping: Add raw clock fallback for random_get_entropy() 2023-04-19 17:49:10 +08:00
init init: call time_init() before rand_initialize() 2023-04-19 17:49:10 +08:00
ipc ipc/sem: do not sleep with a spin lock held 2023-04-19 17:45:01 +08:00
kernel timekeeping: Add raw clock fallback for random_get_entropy() 2023-04-19 17:49:10 +08:00
lib random: replace custom notifier chain with standard one 2023-04-19 17:49:09 +08:00
LICENSES LICENSES/dual/CC-BY-4.0: Git rid of "smart quotes" 2021-07-15 06:31:24 -06:00
mm mm/kfence: reset PG_slab and memcg_data before freeing __kfence_pool 2023-04-19 17:48:53 +08:00
net mptcp: Do TCP fallback on early DSS checksum failure 2023-04-19 17:49:02 +08:00
samples x86: Prepare inline-asm for straight-line-speculation 2023-04-19 17:48:43 +08:00
scripts x86: Add straight-line-speculation mitigation 2023-04-19 17:48:43 +08:00
security lockdown: also lock down previous kgdb use 2023-04-19 17:49:02 +08:00
sound ALSA: hda - fix unused Realtek function when PM is not enabled 2023-04-19 17:48:57 +08:00
tools selftests: add ping test with ping_group_range tuned 2023-04-19 17:49:01 +08:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2023-04-19 17:44:58 +08:00
virt KVM: avoid NULL pointer dereference in kvm_dirty_ring_push 2023-04-19 17:47:52 +08:00
.clang-format clang-format: Update with the latest for_each macro list 2021-05-12 23:32:39 +02:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore .gitignore: ignore only top-level modules.builtin 2021-05-02 00:43:35 +09:00
.mailmap mailmap: add Andrej Shadura 2021-10-18 20:22:03 -10:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Move Daniel Drake to credits 2021-09-21 08:34:58 +03:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS MAINTAINERS: add git tree for random.c 2023-04-19 17:49:03 +08:00
Makefile Linux 5.15.43 2023-04-19 17:49:02 +08:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

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.