[OE-core] [PATCH] rng-tools: fix rngd blocks system shutdown

kai.kang at windriver.com kai.kang at windriver.com
Tue Jul 2 08:32:40 UTC 2019


From: Kai Kang <kai.kang at windriver.com>

fix-rngd-fail-to-stop.patch is added to fix rngd blocks system shutdown
issue. But it causes rngd doesn't release CPU and causes 100% CPU
usage, so drop it.

The block shutdown issue is caused by comit [7cb64b9fe1 rng-tools: start
earlier in the boot process] which updated rngd.service. Revert the
modification of rngd.service.

Update sed expressions in do_install as well which fails to replace
second match in one line.

Signed-off-by: Kai Kang <kai.kang at windriver.com>
---
 .../rng-tools/fix-rngd-fail-to-stop.patch     | 25 -------------------
 .../rng-tools/rng-tools/rngd.service          |  3 ---
 .../rng-tools/rng-tools_6.7.bb                |  5 ++--
 3 files changed, 2 insertions(+), 31 deletions(-)
 delete mode 100644 meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch

diff --git a/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch b/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch
deleted file mode 100644
index 58cf3f9d59..0000000000
--- a/meta/recipes-support/rng-tools/rng-tools/fix-rngd-fail-to-stop.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-It fails to stop rngd. It just shows warnings when stop rngd such as by:
-
-$ systemctl stop rngd.service
-
-but stalls shutdown untill daemon rngd is killed.
-
-Backport patch to fix the issue.
-
-Upstream-Status: Backport [https://bugzilla.redhat.com/show_bug.cgi?id=1690364#c8]
-
-Signed-off-by: Kai Kang <kai.kang at windriver.com>
----
-diff --git a/rngd_jitter.c b/rngd_jitter.c
-index 54070ae..7a69bf9 100644
---- a/rngd_jitter.c
-+++ b/rngd_jitter.c
-@@ -280,7 +280,7 @@ static void *thread_entropy_task(void *data)
- 
- 		/* Write to pipe */
- 		written = 0;
--		while(written != me->buf_sz) {
-+		while(me->active && written != me->buf_sz) {
- 			message(LOG_DAEMON|LOG_DEBUG, "Writing to pipe\n");
- 			ret = write(me->pipe_fd, &tmpbuf[written], me->buf_sz - written);
- 			message(LOG_DAEMON|LOG_DEBUG, "DONE Writing to pipe with return %ld\n", ret);
diff --git a/meta/recipes-support/rng-tools/rng-tools/rngd.service b/meta/recipes-support/rng-tools/rng-tools/rngd.service
index b1a78527be..49d5de294f 100644
--- a/meta/recipes-support/rng-tools/rng-tools/rngd.service
+++ b/meta/recipes-support/rng-tools/rng-tools/rngd.service
@@ -1,8 +1,5 @@
 [Unit]
 Description=Hardware RNG Entropy Gatherer Daemon
-DefaultDependencies=no
-After=systemd-udev-settle.service
-Before=sysinit.target
 
 [Service]
 EnvironmentFile=- at SYSCONFDIR@/default/rng-tools
diff --git a/meta/recipes-support/rng-tools/rng-tools_6.7.bb b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
index aeb558b2b7..b4e453f67f 100644
--- a/meta/recipes-support/rng-tools/rng-tools_6.7.bb
+++ b/meta/recipes-support/rng-tools/rng-tools_6.7.bb
@@ -10,7 +10,6 @@ DEPENDS = "sysfsutils"
 
 SRC_URI = "\
     git://github.com/nhorman/rng-tools.git \
-    file://fix-rngd-fail-to-stop.patch \
     file://init \
     file://default \
     file://rngd.service \
@@ -46,8 +45,8 @@ do_install_append() {
     install -Dm 0644 ${WORKDIR}/rngd.service \
                      ${D}${systemd_system_unitdir}/rngd.service
     sed -i \
-        -e 's, at SYSCONFDIR@,${sysconfdir},' \
-        -e 's, at SBINDIR@,${sbindir},' \
+        -e 's, at SYSCONFDIR@,${sysconfdir},g' \
+        -e 's, at SBINDIR@,${sbindir},g' \
         ${D}${sysconfdir}/init.d/rng-tools \
         ${D}${systemd_system_unitdir}/rngd.service
 }
-- 
2.20.0



More information about the Openembedded-core mailing list