aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/tables.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/tables.c')
-rw-r--r--drivers/acpi/tables.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 21782290df41..05550ba44d32 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -44,6 +44,12 @@ static struct acpi_table_desc initial_tables[ACPI_MAX_TABLES] __initdata;
44 44
45static int acpi_apic_instance __initdata; 45static int acpi_apic_instance __initdata;
46 46
47/*
48 * Disable table checksum verification for the early stage due to the size
49 * limitation of the current x86 early mapping implementation.
50 */
51static bool acpi_verify_table_checksum __initdata = false;
52
47void acpi_table_print_madt_entry(struct acpi_subtable_header *header) 53void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
48{ 54{
49 if (!header) 55 if (!header)
@@ -333,6 +339,14 @@ int __init acpi_table_init(void)
333{ 339{
334 acpi_status status; 340 acpi_status status;
335 341
342 if (acpi_verify_table_checksum) {
343 pr_info("Early table checksum verification enabled\n");
344 acpi_gbl_verify_table_checksum = TRUE;
345 } else {
346 pr_info("Early table checksum verification disabled\n");
347 acpi_gbl_verify_table_checksum = FALSE;
348 }
349
336 status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0); 350 status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0);
337 if (ACPI_FAILURE(status)) 351 if (ACPI_FAILURE(status))
338 return -EINVAL; 352 return -EINVAL;
@@ -354,3 +368,12 @@ static int __init acpi_parse_apic_instance(char *str)
354} 368}
355 369
356early_param("acpi_apic_instance", acpi_parse_apic_instance); 370early_param("acpi_apic_instance", acpi_parse_apic_instance);
371
372static int __init acpi_force_table_verification_setup(char *s)
373{
374 acpi_verify_table_checksum = true;
375
376 return 0;
377}
378
379early_param("acpi_force_table_verification", acpi_force_table_verification_setup);