On Tue Dec 24, 2024 at 6:03 AM EET, Jarkko Sakkinen wrote: > The following failure was reported: > > [ 10.693310][ T1] tpm_tis STM0925:00: 2.0 TPM (device-id 0x3, rev-id 0) > [ 10.848132][ T1] ------------[ cut here ]------------ > [ 10.853559][ T1] WARNING: CPU: 59 PID: 1 at mm/page_alloc.c:4727 > __alloc_pages_noprof+0x2ca/0x330 > [ 10.862827][ T1] Modules linked in: > [ 10.866671][ T1] CPU: 59 UID: 0 PID: 1 Comm: swapper/0 Not tainted > 6.12.0-lp155.2.g52785e2-default #1 openSUSE Tumbleweed (unreleased) > 588cd98293a7c9eba9013378d807364c088c9375 > [ 10.882741][ T1] Hardware name: HPE ProLiant DL320 Gen12/ProLiant DL320 > Gen12, BIOS 1.20 10/28/2024 > [ 10.892170][ T1] RIP: 0010:__alloc_pages_noprof+0x2ca/0x330 > [ 10.898103][ T1] Code: 24 08 e9 4a fe ff ff e8 34 36 fa ff e9 88 fe ff > ff 83 fe 0a 0f 86 b3 fd ff ff 80 3d 01 e7 ce 01 00 75 09 c6 05 f8 e6 ce 01 01 > <0f> 0b 45 31 ff e9 e5 fe ff ff f7 c2 00 00 08 00 75 42 89 d9 80 e1 > [ 10.917750][ T1] RSP: 0000:ffffb7cf40077980 EFLAGS: 00010246 > [ 10.923777][ T1] RAX: 0000000000000000 RBX: 0000000000040cc0 RCX: > 0000000000000000 > [ 10.931727][ T1] RDX: 0000000000000000 RSI: 000000000000000c RDI: > 0000000000040cc0 > > Above shows that ACPI pointed a 16 MiB buffer for the log events because > RSI maps to the 'order' parameter of __alloc_pages_noprof(). Address the > bug by mapping the region when needed instead of copying. > > Cc: [email protected] # v2.6.16+ > Fixes: 55a82ab3181b ("[PATCH] tpm: add bios measurement log") > Reported-by: Andy Liang <[email protected]> > Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219495 > Suggested-by: Matthew Garrett <[email protected]> > Tested-by: Andy Liang <[email protected]> > Signed-off-by: Jarkko Sakkinen <[email protected]>
Doing some weird truncate here would be pointless even if it is "too large". It's HPE's problem, not ours. The onnly piece of code where the fix makes any mentionable changes is really acpi.c and I've tested that quite throughly already... In some other version of the hardware the size was BTW 8 MiB (according to TPM2 table contents) and later on it changed to 16 MiB (according to transcript above i.e. RSI). That is weird but I don't think we should care. BR, Jarkko
