x86/ACPI: don't invalidate S5 data when S3 wakeup vector cannot be determined

We can be more tolerant as long as the data collected from FACS is only
needed to enter S3. A prior change already added suitable checking to
acpi_enter_sleep().

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
Jan Beulich committed 2021-01-05 13:11:04 +01:00
1 parent 0f089bbf43
commit 16ca5b3f87
1 file changed
+5 -4
+5 -4
View File
@@ -420,22 +420,22 @@ acpi_fadt_parse_sleep_info(struct acpi_table_fadt *fadt)
facs_pa = (uint64_t)fadt->facs;
}
if (!facs_pa)
goto bad;
return;
facs = acpi_os_map_memory(facs_pa, sizeof(*facs));
if (!facs)
goto bad;
return;
if (strncmp(facs->signature, "FACS", 4)) {
printk(KERN_ERR PREFIX "Invalid FACS signature %.4s\n",
facs->signature);
goto bad;
goto done;
}
if (facs->length < 24) {
printk(KERN_ERR PREFIX "Invalid FACS table length: %#x",
facs->length);
goto bad;
goto done;
}
if (facs->length < 64)
@@ -452,6 +452,7 @@ acpi_fadt_parse_sleep_info(struct acpi_table_fadt *fadt)
offsetof(struct acpi_table_facs, firmware_waking_vector);
acpi_sinfo.vector_width = 32;
done:
acpi_os_unmap_memory(facs, sizeof(*facs));
printk(KERN_INFO PREFIX
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.