https://bugzilla.kernel.org/show_bug.cgi?id=219495 Bug ID: 219495 Summary: [TPM2] tpm_tis driver crashs during the boot time. Product: Drivers Version: 2.5 Hardware: All OS: Linux Status: NEW Severity: normal Priority: P3 Component: Platform_x86 Assignee: drivers_platform_x86@xxxxxxxxxxxxxxxxxxxx Reporter: andy.liang@xxxxxxx Regression: No Created attachment 307212 --> https://bugzilla.kernel.org/attachment.cgi?id=307212&action=edit binary_bios_measurements file When the TPM2 ACPI table sets the Minimum Log Length size more then 4MB, a call trace occurs during the boot time. The reason is the kmalloc limits the maximum size to 4MB for x86 arch. ====== https://elixir.bootlin.com/linux/v6.8/source/arch/x86/include/asm/page_types.h#L10 #define PAGE_SHIFT 12 #define KMALLOC_SHIFT_MAX (MAX_PAGE_ORDER + PAGE_SHIFT) https://elixir.bootlin.com/linux/v6.8/source/include/linux/mmzone.h#L30 #define MAX_PAGE_ORDER 10 https://elixir.bootlin.com/linux/v6.8/source/include/linux/slab.h#L309 #define KMALLOC_MAX_SIZE (1UL << KMALLOC_SHIFT_MAX) The max size = (1UL << MAX_PAGE_ORDER + PAGE_SHIFT) = ( 1UL << (10 + 12)) = 2^22 =4,194,304 (4MB) ====== https://elixir.bootlin.com/linux/v6.8/source/drivers/char/tpm/eventlog/acpi.c#L87 [ 11.795176] kernel: __kmalloc+0x2b1/0x330 [ 11.795179] kernel: tpm_read_log_acpi+0x95/0x1e0 Problems: [ 11.795129] kernel: Call Trace: [ 11.795131] kernel: <TASK> [ 11.795133] kernel: ? show_trace_log_lvl+0x1d6/0x2ea [ 11.795139] kernel: ? show_trace_log_lvl+0x1d6/0x2ea [ 11.795141] kernel: ? alloc_page_interleave+0x19/0x90 [ 11.795145] kernel: ? show_regs.part.0+0x23/0x29 [ 11.795146] kernel: ? show_regs.cold+0x8/0xd [ 11.795148] kernel: ? __alloc_pages+0x2b0/0x330 [ 11.795150] kernel: ? __warn+0x8c/0x100 [ 11.795154] kernel: ? __alloc_pages+0x2b0/0x330 [ 11.795156] kernel: ? report_bug+0xa4/0xd0 [ 11.795160] kernel: ? handle_bug+0x39/0x90 [ 11.795162] kernel: ? exc_invalid_op+0x19/0x70 [ 11.795164] kernel: ? asm_exc_invalid_op+0x1b/0x20 [ 11.795167] kernel: ? __alloc_pages+0x2b0/0x330 [ 11.795169] kernel: alloc_page_interleave+0x19/0x90 [ 11.795171] kernel: alloc_pages+0x131/0x1e0 [ 11.795173] kernel: kmalloc_order+0x2f/0xd0 [ 11.795175] kernel: kmalloc_order_trace+0x1d/0x90 [ 11.795176] kernel: __kmalloc+0x2b1/0x330 [ 11.795179] kernel: tpm_read_log_acpi+0x95/0x1e0 [ 11.795183] kernel: tpm_bios_log_setup+0x54/0x270 [ 11.795185] kernel: tpm_chip_register.part.0+0x32/0x1f0 [ 11.795186] kernel: tpm_chip_register+0x61/0xa0 [ 11.795188] kernel: tpm_tis_core_init.cold+0x206/0x448 [ 11.795191] kernel: tpm_tis_init.part.0+0xb4/0x130 [ 11.795193] kernel: tpm_tis_plat_probe+0xd4/0x100 [ 11.795195] kernel: platform_probe+0x46/0xd0 [ 11.795201] kernel: really_probe+0x21f/0x420 [ 11.795203] kernel: __driver_probe_device+0xe8/0x140 [ 11.795205] kernel: driver_probe_device+0x23/0xc0 [ 11.795207] kernel: __driver_attach+0xf7/0x1f0 [ 11.795209] kernel: ? __device_attach_driver+0x140/0x140 [ 11.795211] kernel: bus_for_each_dev+0x7c/0xd0 [ 11.795213] kernel: driver_attach+0x1e/0x30 [ 11.795215] kernel: bus_add_driver+0x148/0x220 [ 11.795217] kernel: driver_register+0x95/0x100 [ 11.795219] kernel: ? tpm_init+0x68/0xfa -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.