diff options
Diffstat (limited to 'kernel/time')
| -rw-r--r-- | kernel/time/timer.c | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/kernel/time/timer.c b/kernel/time/timer.c index df1ff803acc4..026ac01af9da 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -43,6 +43,7 @@  #include <linux/sched/debug.h>  #include <linux/slab.h>  #include <linux/compat.h> +#include <linux/random.h>  #include <linux/uaccess.h>  #include <asm/unistd.h> @@ -1742,6 +1743,13 @@ void update_process_times(int user_tick)  	scheduler_tick();  	if (IS_ENABLED(CONFIG_POSIX_TIMERS))  		run_posix_cpu_timers(); + +	/* The current CPU might make use of net randoms without receiving IRQs +	 * to renew them often enough. Let's update the net_rand_state from a +	 * non-constant value that's not affine to the number of calls to make +	 * sure it's updated when there's some activity (we don't care in idle). +	 */ +	this_cpu_add(net_rand_state.s1, rol32(jiffies, 24) + user_tick);  }  /** | 
