https://bugzilla.kernel.org/show_bug.cgi?id=206343
--- Comment #1 from Steven Clarkson (s...@lambdal.com) --- Turns out this causes the kernel to hang in the while loop parsing the SRAT table in count_immovable_mem_regions. After dumping the SRAT table, it looks like there's 320 bytes of zeros in the middle of it. Sure enough, dmesg complains [ 0.007413] ACPI: [SRAT:0x00] Invalid zero length [ 0.007415] ACPI: [SRAT:0x01] Invalid zero length Proposed patch below. diff --git a/arch/x86/boot/compressed/acpi.c b/arch/x86/boot/compressed/acpi.c index 25019d42ae93..7369de333eda 100644 --- a/arch/x86/boot/compressed/acpi.c +++ b/arch/x86/boot/compressed/acpi.c @@ -394,6 +394,12 @@ int count_immovable_mem_regions(void) while (table + sizeof(struct acpi_subtable_header) < table_end) { sub_table = (struct acpi_subtable_header *)table; + + if (!sub_table->length) { + debug_putstr("Invalid zero length SRAT subtable.\n"); + break; + } + if (sub_table->type == ACPI_SRAT_TYPE_MEMORY_AFFINITY) { struct acpi_srat_mem_affinity *ma; -- You are receiving this mail because: You are watching the assignee of the bug. _______________________________________________ acpi-bugzilla mailing list acpi-bugzilla@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla