[PATCH] unseeded cnrg warning flooding dmesg fix, v2

"Roberto A. Foglietta" <[email protected]> Tue, 12 May 2026 06:11:45 +0200
Newsgroups org.kernel.vger.linux-embedded
Message-ID <CAJGKYO4BZQd9sCsgnrSJ-wG5aDjM2P5nXJOyhDn=nU1O3+2T8w@mail.gmail.com>
--000000000000e9c6f00651971102
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

A patch based on 5.15.202, in-line for comments + attachment as patch

Public patch by url / commit for future reference:

https://raw.githubusercontent.com/robang74/uchaosys/
4ddd9859582441afe0faf43a227124d8cf579c5c/
cnfg/bothering-warn_unseeded_randomness-fix.patch

Best regards,
Roberto A. Foglietta

From df61514c6e07ae722c87b2727999bdc49a08bcaa Mon Sep 17 00:00:00 2001
From: "Roberto A. Foglietta" <[email protected]>
Date: Tue, 12 May 2026 05:39:41 +0200
Subject: [PATCH] unseeded cnrg warning flooding dmesg fix, v2
MIME-Version: 1.0
Content-Type: text/plain; charset=3DUTF-8
Content-Transfer-Encoding: 8bit

Better than hiding the warning, there is a third approach compared
print_ratelimited() and printk_once(), printk one over N=3D256 which
is fitting this specific case: at boot time too much warnings for
a few seconds but still printing something in case the problem
persists without clogging the log.

On a SMP system the counter might face a race condition due to non
atomic increment and this can lead to skipping a scheduled print or
print two of them when just one was expected. No harm in both cases,
anyway.

To be honest, complaining that a suppression counter might be subject
to a race condition on an SMP system - when, if it weren=E2=80=99t there, a=
n
alarm would be triggered stating that the system is initialising
cryptographic directives without adequate entropy support - seems
a bit surreal to me.

Patch based on Linux kernel 5.15.202 LTS master branch.

v1 -> v2: a bit better English and "git am" format

Signed-off-by: Roberto A. Foglietta <[email protected]>
---
 drivers/char/random.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/char/random.c b/drivers/char/random.c
index 8642326de6e1..eeec336b10fa 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -182,7 +182,8 @@ static void __cold process_random_ready_list(void)
 }

 #define warn_unseeded_randomness() \
- if (IS_ENABLED(CONFIG_WARN_ALL_UNSEEDED_RANDOM) && !crng_ready()) \
+ if (IS_ENABLED(CONFIG_WARN_ALL_UNSEEDED_RANDOM) && !crng_ready() \
+ && !({ static u8 x=3D-1; ++x; })) \
  printk_deferred(KERN_NOTICE "random: %s called from %pS with
crng_init=3D%d\n", \
  __func__, (void *)_RET_IP_, crng_init)

--=20
2.34.1

--000000000000e9c6f00651971102
Content-Type: text/x-patch; charset="UTF-8"; 
	name="0001-unseeded-cnrg-warning-flooding-dmesg-fix-v2.patch"
Content-Disposition: attachment; 
	filename="0001-unseeded-cnrg-warning-flooding-dmesg-fix-v2.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mp242k450>
X-Attachment-Id: f_mp242k450

RnJvbSBkZjYxNTE0YzZlMDdhZTcyMmM4N2IyNzI3OTk5YmRjNDlhMDhiY2FhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiUm9iZXJ0byBBLiBGb2dsaWV0dGEiIDxyb2JlcnRvLmZvZ2xp
ZXR0YUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTIgTWF5IDIwMjYgMDU6Mzk6NDEgKzAyMDAKU3Vi
amVjdDogW1BBVENIXSB1bnNlZWRlZCBjbnJnIHdhcm5pbmcgZmxvb2RpbmcgZG1lc2cgZml4LCB2
MgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG
LTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKQmV0dGVyIHRoYW4gaGlkaW5nIHRo
ZSB3YXJuaW5nLCB0aGVyZSBpcyBhIHRoaXJkIGFwcHJvYWNoIGNvbXBhcmVkCnByaW50X3JhdGVs
aW1pdGVkKCkgYW5kIHByaW50a19vbmNlKCksIHByaW50ayBvbmUgb3ZlciBOPTI1NiB3aGljaApp
cyBmaXR0aW5nIHRoaXMgc3BlY2lmaWMgY2FzZTogYXQgYm9vdCB0aW1lIHRvbyBtdWNoIHdhcm5p
bmdzIGZvcgphIGZldyBzZWNvbmRzIGJ1dCBzdGlsbCBwcmludGluZyBzb21ldGhpbmcgaW4gY2Fz
ZSB0aGUgcHJvYmxlbQpwZXJzaXN0cyB3aXRob3V0IGNsb2dnaW5nIHRoZSBsb2cuCgpPbiBhIFNN
UCBzeXN0ZW0gdGhlIGNvdW50ZXIgbWlnaHQgZmFjZSBhIHJhY2UgY29uZGl0aW9uIGR1ZSB0byBu
b24KYXRvbWljIGluY3JlbWVudCBhbmQgdGhpcyBjYW4gbGVhZCB0byBza2lwcGluZyBhIHNjaGVk
dWxlZCBwcmludCBvcgpwcmludCB0d28gb2YgdGhlbSB3aGVuIGp1c3Qgb25lIHdhcyBleHBlY3Rl
ZC4gTm8gaGFybSBpbiBib3RoIGNhc2VzLAphbnl3YXkuCgpUbyBiZSBob25lc3QsIGNvbXBsYWlu
aW5nIHRoYXQgYSBzdXBwcmVzc2lvbiBjb3VudGVyIG1pZ2h0IGJlIHN1YmplY3QKdG8gYSByYWNl
IGNvbmRpdGlvbiBvbiBhbiBTTVAgc3lzdGVtIC0gd2hlbiwgaWYgaXQgd2VyZW7igJl0IHRoZXJl
LCBhbgphbGFybSB3b3VsZCBiZSB0cmlnZ2VyZWQgc3RhdGluZyB0aGF0IHRoZSBzeXN0ZW0gaXMg
aW5pdGlhbGlzaW5nCmNyeXB0b2dyYXBoaWMgZGlyZWN0aXZlcyB3aXRob3V0IGFkZXF1YXRlIGVu
dHJvcHkgc3VwcG9ydCAtIHNlZW1zCmEgYml0IHN1cnJlYWwgdG8gbWUuCgpQYXRjaCBiYXNlZCBv
biBMaW51eCBrZXJuZWwgNS4xNS4yMDIgTFRTIG1hc3RlciBicmFuY2guCgp2MSAtPiB2MjogYSBi
aXQgYmV0dGVyIEVuZ2xpc2ggYW5kICJnaXQgYW0iIGZvcm1hdAoKU2lnbmVkLW9mZi1ieTogUm9i
ZXJ0byBBLiBGb2dsaWV0dGEgPHJvYmVydG8uZm9nbGlldHRhQGdtYWlsLmNvbT4KLS0tCiBkcml2
ZXJzL2NoYXIvcmFuZG9tLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr
KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9yYW5kb20uYyBiL2Ry
aXZlcnMvY2hhci9yYW5kb20uYwppbmRleCA4NjQyMzI2ZGU2ZTEuLmVlZWMzMzZiMTBmYSAxMDA2
NDQKLS0tIGEvZHJpdmVycy9jaGFyL3JhbmRvbS5jCisrKyBiL2RyaXZlcnMvY2hhci9yYW5kb20u
YwpAQCAtMTgyLDcgKzE4Miw4IEBAIHN0YXRpYyB2b2lkIF9fY29sZCBwcm9jZXNzX3JhbmRvbV9y
ZWFkeV9saXN0KHZvaWQpCiB9CiAKICNkZWZpbmUgd2Fybl91bnNlZWRlZF9yYW5kb21uZXNzKCkg
XAotCWlmIChJU19FTkFCTEVEKENPTkZJR19XQVJOX0FMTF9VTlNFRURFRF9SQU5ET00pICYmICFj
cm5nX3JlYWR5KCkpIFwKKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfV0FSTl9BTExfVU5TRUVERURf
UkFORE9NKSAmJiAhY3JuZ19yZWFkeSgpIFwKKwkmJiAhKHsgc3RhdGljIHU4IHg9LTE7ICsreDsg
fSkpIFwKIAkJcHJpbnRrX2RlZmVycmVkKEtFUk5fTk9USUNFICJyYW5kb206ICVzIGNhbGxlZCBm
cm9tICVwUyB3aXRoIGNybmdfaW5pdD0lZFxuIiwgXAogCQkJCV9fZnVuY19fLCAodm9pZCAqKV9S
RVRfSVBfLCBjcm5nX2luaXQpCiAKLS0gCjIuMzQuMQoK
--000000000000e9c6f00651971102--