[linus:master] [hwrng] fb10c7a846: WARNING:at_drivers/char/hw_random/core.c:#hwrng_fillfn

From: kernel test robot
Date: Wed Mar 26 2025 - 02:34:14 EST



hi, Herbert Xu,

we noticed the WARN added in this commit was hit in our tests.
below full report FYI.


Hello,

kernel test robot noticed "WARNING:at_drivers/char/hw_random/core.c:#hwrng_fillfn" on:

commit: fb10c7a84661471cdcc8998d63703211b873c126 ("hwrng: core - Add WARN_ON for buggy read return values")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

in testcase: stress-ng
version: stress-ng-x86_64-1c71921fd-1_20250212
with following parameters:

nr_threads: 100%
testtime: 60s
test: memcpy
cpufreq_governor: performance



config: x86_64-rhel-9.4
compiler: gcc-12
test machine: 64 threads 2 sockets Intel(R) Xeon(R) Gold 6346 CPU @ 3.10GHz (Ice Lake) with 256G memory

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202503261331.d388f82a-lkp@xxxxxxxxx


kern :warn : [ 28.777572] ------------[ cut here ]------------
kern :info : [ 28.780433] resctrl: MB allocation detected
kern :warn : [ 28.785745] WARNING: CPU: 46 PID: 576 at drivers/char/hw_random/core.c:188 hwrng_fillfn (drivers/char/hw_random/core.c:188 drivers/char/hw_random/core.c:492)
kern :info : [ 28.790623] resctrl: L3 monitoring detected
kern :info : [ 28.790753] IPI shorthand broadcast: enabled
kern :warn : [ 28.800354] Modules linked in:
kern :info : [ 28.805292] ... APIC ID: 00000000 (0)

kern :info : [ 28.806287] ... APIC VERSION: 01060015

kern :warn : [ 28.818747] CPU: 46 UID: 0 PID: 576 Comm: hwrng Not tainted 6.12.0-rc1-00031-gfb10c7a84661 #1
kern :warn : [ 28.806287] 0000000000000000
kern :warn : [ 28.825377] Hardware name: Inspur NF5180M6/NF5180M6, BIOS 06.00.04 04/12/2022
kern :warn : [ 28.806287] 0000000000000000000000000000000000000000
kern :warn : [ 28.836782] RIP: 0010:hwrng_fillfn (drivers/char/hw_random/core.c:188 drivers/char/hw_random/core.c:492)
kern :warn : [ 28.806287] 00000000
kern :debug : [ 28.806287] 00000000000000000000000000000000
kern :warn : [ 28.848190] Code: 11 27 00 00 e8 45 a7 6f 00 48 89 df e8 fd f4 ff ff e9 8c fe ff ff 48 8b 43 20 48 89 ee 48 89 df ff d0 0f 1f 00 e9 15 ff ff ff <0f> 0b 44 0f b7 2d ea d6 70 02 66 44 39 6b 38 74 23 66 44 89 6b 38
All code
========
0: 11 27 adc %esp,(%rdi)
2: 00 00 add %al,(%rax)
4: e8 45 a7 6f 00 call 0x6fa74e
9: 48 89 df mov %rbx,%rdi
c: e8 fd f4 ff ff call 0xfffffffffffff50e
11: e9 8c fe ff ff jmp 0xfffffffffffffea2
16: 48 8b 43 20 mov 0x20(%rbx),%rax
1a: 48 89 ee mov %rbp,%rsi
1d: 48 89 df mov %rbx,%rdi
20: ff d0 call *%rax
22: 0f 1f 00 nopl (%rax)
25: e9 15 ff ff ff jmp 0xffffffffffffff3f
2a:* 0f 0b ud2 <-- trapping instruction
2c: 44 0f b7 2d ea d6 70 movzwl 0x270d6ea(%rip),%r13d # 0x270d71e
33: 02
34: 66 44 39 6b 38 cmp %r13w,0x38(%rbx)
39: 74 23 je 0x5e
3b: 66 44 89 6b 38 mov %r13w,0x38(%rbx)

Code starting with the faulting instruction
===========================================
0: 0f 0b ud2
2: 44 0f b7 2d ea d6 70 movzwl 0x270d6ea(%rip),%r13d # 0x270d6f4
9: 02
a: 66 44 39 6b 38 cmp %r13w,0x38(%rbx)
f: 74 23 je 0x34
11: 66 44 89 6b 38 mov %r13w,0x38(%rbx)
kern :warn : [ 28.850350] 00000000000000000000000000000000
kern :debug : [ 28.850350] 0000000000000000
kern :warn : [ 28.858987] RSP: 0000:ffa000000ecb7ed0 EFLAGS: 00010206
kern :warn : [ 28.850350] 000000000000000000000000000000000000000008001000



kern :debug : [ 28.886279] number of MP IRQ sources: 15.
kern :warn : [ 28.891243] RAX: 0000000000000903 RBX: ff110001077f6760 RCX: ffa000000ecb7e57
kern :debug : [ 28.894823] number of IO-APIC #8 registers: 120.
kern :warn : [ 28.900743] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ff110001077f6038
kern :info : [ 28.907093] testing the IO APIC.......................
kern :debug : [ 28.907113] IO APIC #8......
kern :warn : [ 28.909286] RBP: ff11000109247c40 R08: 0000000000000000 R09: 0000000000000000
kern :debug : [ 28.911481] .... register #00: 0E000000
kern :warn : [ 28.913673] R10: 00000000000007e0 R11: ff110020001340e4 R12: 0000000000000000
kern :debug : [ 28.918379] ....... : physical APIC id: 0E
kern :warn : [ 28.926205] R13: ff11000200313a00 R14: 0000000000000000 R15: ffffffff819ce3d0
kern :debug : [ 28.931517] ....... : Delivery Type: 0
kern :warn : [ 28.939345] FS: 0000000000000000(0000) GS:ff11002000100000(0000) knlGS:0000000000000000
kern :debug : [ 28.945175] ....... : LTS : 0
kern :warn : [ 28.948756] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
kern :debug : [ 28.956581] .... register #01: 00770020
kern :warn : [ 28.961118] CR2: 0000000000000000 CR3: 000000407dc22001 CR4: 0000000000771ef0
kern :debug : [ 28.968939] ....... : max redirection entries: 77
kern :debug : [ 28.968940] ....... : PRQ implemented: 0
kern :warn : [ 28.973996] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
kern :debug : [ 28.981818] ....... : IO APIC version: 20
kern :warn : [ 28.986525] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
kern :debug : [ 28.995304] .... register #02: 00000000
kern :warn : [ 29.000012] PKRU: 55555554
kern :debug : [ 29.006450] ....... : arbitration: 00
kern :warn : [ 29.010984] Call Trace:
kern :debug : [ 29.018809] .... IRQ redirection table:
kern :debug : [ 29.018810] IOAPIC 0:
kern :debug : [ 29.018819] pin00, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.024563] <TASK>
kern :debug : [ 29.029528] pin01, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.037352] ? __warn (kernel/panic.c:748)
kern :debug : [ 29.042408] pin02, enabled , edge , high, V(30), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.050225] ? hwrng_fillfn (drivers/char/hw_random/core.c:188 drivers/char/hw_random/core.c:492)
kern :debug : [ 29.054766] pin03, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.058165] ? report_bug (lib/bug.c:180 lib/bug.c:219)
kern :debug : [ 29.062876] pin04, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.066017] ? handle_bug (arch/x86/kernel/traps.c:285)
kern :debug : [ 29.070556] pin05, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.073520] ? exc_invalid_op (arch/x86/kernel/traps.c:309 (discriminator 1))
kern :debug : [ 29.082309] pin06, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.085099] ? asm_exc_invalid_op (arch/x86/include/asm/idtentry.h:621)
kern :debug : [ 29.093888] pin07, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.097807] ? __pfx_hwrng_fillfn (drivers/char/hw_random/core.c:480)
kern :debug : [ 29.106593] pin08, enabled , edge , high, V(20), IRR(0), S(0), physic al, D(0003), M(0)
kern :warn : [ 29.111118] ? hwrng_fillfn (drivers/char/hw_random/core.c:188 drivers/char/hw_random/core.c:492)
kern :debug : [ 29.119906] pin09, enabled , level, high, V(20), IRR(0), S(0), physic al, D(0002), M(0)
kern :warn : [ 29.124255] kthread (kernel/kthread.c:389)
kern :debug : [ 29.133043] pin0a, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.137223] ? __pfx_kthread (kernel/kthread.c:342)
kern :debug : [ 29.146009] pin0b, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.150534] ret_from_fork (arch/x86/kernel/process.c:147)
kern :debug : [ 29.159320] pin0c, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.164193] ? __pfx_kthread (kernel/kthread.c:342)
kern :debug : [ 29.172979] pin0d, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.177851] ret_from_fork_asm (arch/x86/entry/entry_64.S:257)
kern :debug : [ 29.186640] pin0e, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.191166] </TASK>
kern :debug : [ 29.199952] pin0f, disabled, edge , high, V(00), IRR(0), S(0), physic al, D(0000), M(0)
kern :warn : [ 29.203697] ---[ end trace 0000000000000000 ]---


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250326/202503261331.d388f82a-lkp@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki