[meta-oe] haveged: fix CPU cache size detection

Submitted by Stefan Agner on June 6, 2019, 2:09 p.m. | Patch ID: 162012

Details

Message ID 20190606140914.28713-1-stefan@agner.ch
State Accepted
Commit 2ab13510874809a4d44cf07ae82a408c08607a41
Headers show

Commit Message

Stefan Agner June 6, 2019, 2:09 p.m.
From: Stefan Agner <stefan.agner@toradex.com>

Fix ENOMEM error in case the kernel reports cache size of -1. This
lead to the following error when starting haveged:
  haveged starting up
  haveged: Couldn't initialize HAVEGE rng 5

Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
---
 .../haveged/fix-cpu-cache-size-detection.patch       | 20 ++++++++++++++++++++
 meta-oe/recipes-extended/haveged/haveged_1.9.4.bb    |  1 +
 2 files changed, 21 insertions(+)
 create mode 100644 meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch

Patch hide | download patch | download mbox

diff --git a/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch b/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch
new file mode 100644
index 000000000..5b68f1966
--- /dev/null
+++ b/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch
@@ -0,0 +1,20 @@ 
+Some ARM cpus does not report the cache size or say it is -1
+
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866306
+
+Upstream-status: Pending
+
+Index: haveged-1.9.2/src/havegetune.c
+===================================================================
+--- haveged-1.9.2.orig/src/havegetune.c
++++ haveged-1.9.2/src/havegetune.c
+@@ -795,6 +795,9 @@ static int vfs_configInfoCache(
+          ctype = vfs_configFile(pAnchor, path, vfs_configType);
+          strcpy(path+plen, "size");
+          size  = vfs_configFile(pAnchor, path, vfs_configInt);
++         if (size == -1) {
++             size = ctype == 'I' ? GENERIC_ICACHE : GENERIC_DCACHE;
++         }
+          cfg_cacheAdd(pAnchor, SRC_VFS_INDEX,  pArgs[1], level, ctype, size);
+          }
+      }
diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
index 32aab59f1..d0e1a29dd 100644
--- a/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
+++ b/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
@@ -9,6 +9,7 @@  LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 SRCREV = "faa40ff345af194d3253f5fb030403e3c9831c36"
 SRC_URI = "git://github.com/jirka-h/haveged.git \
            file://haveged-init.d-Makefile.am-add-missing-dependency.patch \
+           file://fix-cpu-cache-size-detection.patch \
 "
 S = "${WORKDIR}/git"
 

Comments

Armin Kuster June 7, 2019, 9:52 p.m.
On 6/6/19 7:09 AM, Stefan Agner wrote:
> From: Stefan Agner <stefan.agner@toradex.com>
>
> Fix ENOMEM error in case the kernel reports cache size of -1. This
> lead to the following error when starting haveged:
>   haveged starting up
>   haveged: Couldn't initialize HAVEGE rng 5
>
> Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
> ---
>  .../haveged/fix-cpu-cache-size-detection.patch       | 20 ++++++++++++++++++++
>  meta-oe/recipes-extended/haveged/haveged_1.9.4.bb    |  1 +
>  2 files changed, 21 insertions(+)
>  create mode 100644 meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch
>
> diff --git a/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch b/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch
> new file mode 100644
> index 000000000..5b68f1966
> --- /dev/null
> +++ b/meta-oe/recipes-extended/haveged/haveged/fix-cpu-cache-size-detection.patch
> @@ -0,0 +1,20 @@
> +Some ARM cpus does not report the cache size or say it is -1
> +
> +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866306
> +
> +Upstream-status: Pending

missing "Singed-off-by" per patch process
> +
> +Index: haveged-1.9.2/src/havegetune.c
> +===================================================================
> +--- haveged-1.9.2.orig/src/havegetune.c
> ++++ haveged-1.9.2/src/havegetune.c
> +@@ -795,6 +795,9 @@ static int vfs_configInfoCache(
> +          ctype = vfs_configFile(pAnchor, path, vfs_configType);
> +          strcpy(path+plen, "size");
> +          size  = vfs_configFile(pAnchor, path, vfs_configInt);
> ++         if (size == -1) {
> ++             size = ctype == 'I' ? GENERIC_ICACHE : GENERIC_DCACHE;
> ++         }
> +          cfg_cacheAdd(pAnchor, SRC_VFS_INDEX,  pArgs[1], level, ctype, size);
> +          }
> +      }
> diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
> index 32aab59f1..d0e1a29dd 100644
> --- a/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
> +++ b/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb
> @@ -9,6 +9,7 @@ LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
>  SRCREV = "faa40ff345af194d3253f5fb030403e3c9831c36"
>  SRC_URI = "git://github.com/jirka-h/haveged.git \
>             file://haveged-init.d-Makefile.am-add-missing-dependency.patch \
> +           file://fix-cpu-cache-size-detection.patch \
>  "
>  S = "${WORKDIR}/git"
>