Message ID | 20220419111650.1582274-9-Jason@zx2c4.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | archs/random: fallback to best raw ktime when no cycle counter | expand |
On Tue, 2022-04-19 at 13:16 +0200, Jason A. Donenfeld wrote: > In the event that random_get_entropy() can't access a cycle counter or > similar, falling back to returning 0 is really not the best we can do. > Instead, at least calling random_get_entropy_fallback() would be > preferable, because that always needs to return _something_, even > falling back to jiffies eventually. It's not as though > random_get_entropy_fallback() 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. > > This is accomplished by just including the asm-generic code like on > other architectures, which means we can get rid of the empty stub > function here. LGTM, actually better than before, though not even sure any drivers in ARCH=um have interrupts that say they can be used for this. Acked-by: Johannes Berg <johannes@sipsolutions.net> I assume you're going to take this through the random tree? johannes
Hi Johannes, On Tue, Apr 19, 2022 at 01:33:21PM +0200, Johannes Berg wrote: > On Tue, 2022-04-19 at 13:16 +0200, Jason A. Donenfeld wrote: > > In the event that random_get_entropy() can't access a cycle counter or > > similar, falling back to returning 0 is really not the best we can do. > > Instead, at least calling random_get_entropy_fallback() would be > > preferable, because that always needs to return _something_, even > > falling back to jiffies eventually. It's not as though > > random_get_entropy_fallback() 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. > > > > This is accomplished by just including the asm-generic code like on > > other architectures, which means we can get rid of the empty stub > > function here. > > > LGTM, actually better than before, though not even sure any drivers in > ARCH=um have interrupts that say they can be used for this. > > Acked-by: Johannes Berg <johannes@sipsolutions.net> > > I assume you're going to take this through the random tree? Right, that's the plan (as mentioned in the cover letter). Changes to random.c will depend on these patches being there. Jason
diff --git a/arch/um/include/asm/timex.h b/arch/um/include/asm/timex.h index e392a9a5bc9b..9f27176adb26 100644 --- a/arch/um/include/asm/timex.h +++ b/arch/um/include/asm/timex.h @@ -2,13 +2,8 @@ #ifndef __UM_TIMEX_H #define __UM_TIMEX_H -typedef unsigned long cycles_t; - -static inline cycles_t get_cycles (void) -{ - return 0; -} - #define CLOCK_TICK_RATE (HZ) +#include <asm-generic/timex.h> + #endif
In the event that random_get_entropy() can't access a cycle counter or similar, falling back to returning 0 is really not the best we can do. Instead, at least calling random_get_entropy_fallback() would be preferable, because that always needs to return _something_, even falling back to jiffies eventually. It's not as though random_get_entropy_fallback() 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. This is accomplished by just including the asm-generic code like on other architectures, which means we can get rid of the empty stub function here. Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Richard Weinberger <richard@nod.at> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> --- arch/um/include/asm/timex.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)