https://bugzilla.kernel.org/show_bug.cgi?id=206343
Borislav Petkov (b...@alien8.de) changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |b...@alien8.de --- Comment #2 from Borislav Petkov (b...@alien8.de) --- (In reply to Steven Clarkson from comment #1) > 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. Of course. Qwalitee BIOS. ;-\ > 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; Yah, makes a lot of sense to me. Especially if this has been already encountered with other BIOSes. Sounds like the qwalitee work has been spread around. Please submit a proper patch to LKML documenting which BIOS version it is and CC me. If you need help with creating the patch, just ask. Thx. -- 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