lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 10 Apr 2022 23:49:42 +0200 From: "Jason A. Donenfeld" <Jason@...c4.com> To: linux-kernel@...r.kernel.org, linux-crypto@...r.kernel.org, tglx@...utronix.de, arnd@...db.de Cc: "Jason A. Donenfeld" <Jason@...c4.com>, Theodore Ts'o <tytso@....edu>, Dominik Brodowski <linux@...inikbrodowski.net>, Russell King <linux@...linux.org.uk>, Catalin Marinas <catalin.marinas@....com>, Will Deacon <will@...nel.org>, Geert Uytterhoeven <geert@...ux-m68k.org>, Thomas Bogendoerfer <tsbogend@...ha.franken.de>, Paul Walmsley <paul.walmsley@...ive.com>, Palmer Dabbelt <palmer@...belt.com>, Albert Ou <aou@...s.berkeley.edu>, "David S . Miller" <davem@...emloft.net>, Richard Weinberger <richard@....at>, Anton Ivanov <anton.ivanov@...bridgegreys.com>, Johannes Berg <johannes@...solutions.net>, Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>, Dave Hansen <dave.hansen@...ux.intel.com>, "H . Peter Anvin" <hpa@...or.com>, Chris Zankel <chris@...kel.net>, Max Filippov <jcmvbkbc@...il.com>, John Stultz <john.stultz@...aro.org>, Stephen Boyd <sboyd@...nel.org>, Dinh Nguyen <dinguyen@...nel.org>, linux-arm-kernel@...ts.infradead.org, linux-m68k@...ts.linux-m68k.org, linux-mips@...r.kernel.org, linux-riscv@...ts.infradead.org, sparclinux@...r.kernel.org, linux-um@...ts.infradead.org, x86@...nel.org, linux-xtensa@...ux-xtensa.org Subject: [PATCH v2 02/11] timekeeping: use ktime_read_raw_clock() for random_get_entropy() if no get_cycles() In the event that a given arch does not define get_cycles(), falling back to the get_cycles() default implementation that returns 0 is really not the best we can do. Instead, at least calling ktime_read_raw_clock() would be preferable, because that always needs to return _something_, even falling back to jiffies eventually. It's not as though ktime_read_raw_clock() is super high precision or guaranteed to be entropic, but basically anything that's not zero all the time is better than returning zero all the time. Cc: Thomas Gleixner <tglx@...utronix.de> Cc: Arnd Bergmann <arnd@...db.de> Cc: Theodore Ts'o <tytso@....edu> Signed-off-by: Jason A. Donenfeld <Jason@...c4.com> --- include/linux/timex.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/include/linux/timex.h b/include/linux/timex.h index 56502b338287..4050f68c34cb 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h @@ -76,8 +76,14 @@ extern u64 ktime_read_raw_clock(void); * * By default we use get_cycles() for this purpose, but individual * architectures may override this in their asm/timex.h header file. + * If a given arch does not have get_cycles(), then we fallback to + * using sched_clock(). */ +#ifdef get_cycles #define random_get_entropy() ((unsigned long)get_cycles()) +#else +#define random_get_entropy() ((unsigned long)ktime_read_raw_clock()) +#endif #endif /* -- 2.35.1
Powered by blists - more mailing lists