|
@@ -586,6 +586,11 @@ static int apei_check_gar(struct acpi_generic_address *reg, u64 *paddr,
|
|
|
}
|
|
|
*access_bit_width = 1UL << (access_size_code + 2);
|
|
|
|
|
|
+ /* Fixup common BIOS bug */
|
|
|
+ if (bit_width == 32 && bit_offset == 0 && (*paddr & 0x03) == 0 &&
|
|
|
+ *access_bit_width < 32)
|
|
|
+ *access_bit_width = 32;
|
|
|
+
|
|
|
if ((bit_width + bit_offset) > *access_bit_width) {
|
|
|
pr_warning(FW_BUG APEI_PFX
|
|
|
"Invalid bit width + offset in GAR [0x%llx/%u/%u/%u/%u]\n",
|