getrandom blocks until the random pool is being initialized. Unfortunately, this code is being called early during init to create the overlay filesystem, on some devices leaving little chance for a successful random pool init. True randomness is not that important here, so fix this issue by sticking to using /dev/urandom, like in older versions of this code. Signed-off-by: Felix Fietkau <nbd@nbd.name>
		
			
				
	
	
		
			15 lines
		
	
	
		
			305 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			15 lines
		
	
	
		
			305 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
--- a/lib/randutils.c
 | 
						|
+++ b/lib/randutils.c
 | 
						|
@@ -25,6 +25,11 @@
 | 
						|
 #define THREAD_LOCAL static
 | 
						|
 #endif
 | 
						|
 
 | 
						|
+/* force /dev/urandom to avoid hanging on early boot */
 | 
						|
+#undef HAVE_GETRANDOM
 | 
						|
+#undef SYS_getrandom
 | 
						|
+#undef __NR_getrandom
 | 
						|
+
 | 
						|
 #ifdef HAVE_GETRANDOM
 | 
						|
 # include <sys/random.h>
 | 
						|
 #elif defined (__linux__)
 |