util-linux: avoid using the getrandom syscall
authorFelix Fietkau <nbd@nbd.name>
Fri, 29 Sep 2017 10:30:52 +0000 (12:30 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 29 Sep 2017 10:32:44 +0000 (12:32 +0200)
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>
package/utils/util-linux/patches/100-use_urandom.patch [new file with mode: 0644]

diff --git a/package/utils/util-linux/patches/100-use_urandom.patch b/package/utils/util-linux/patches/100-use_urandom.patch
new file mode 100644 (file)
index 0000000..848f2f4
--- /dev/null
@@ -0,0 +1,14 @@
+--- 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__)