diff options
Diffstat (limited to 'drivers/acpi/acpica/tbprint.c')
-rw-r--r-- | drivers/acpi/acpica/tbprint.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/acpi/acpica/tbprint.c b/drivers/acpi/acpica/tbprint.c index dc963f823d2c..6866e767ba90 100644 --- a/drivers/acpi/acpica/tbprint.c +++ b/drivers/acpi/acpica/tbprint.c | |||
@@ -135,10 +135,10 @@ acpi_tb_print_table_header(acpi_physical_address address, | |||
135 | 135 | ||
136 | /* FACS only has signature and length fields */ | 136 | /* FACS only has signature and length fields */ |
137 | 137 | ||
138 | ACPI_INFO((AE_INFO, "%4.4s %p %05X", | 138 | ACPI_INFO((AE_INFO, "%4.4s %p %06X", |
139 | header->signature, ACPI_CAST_PTR(void, address), | 139 | header->signature, ACPI_CAST_PTR(void, address), |
140 | header->length)); | 140 | header->length)); |
141 | } else if (ACPI_COMPARE_NAME(header->signature, ACPI_SIG_RSDP)) { | 141 | } else if (ACPI_VALIDATE_RSDP_SIG(header->signature)) { |
142 | 142 | ||
143 | /* RSDP has no common fields */ | 143 | /* RSDP has no common fields */ |
144 | 144 | ||
@@ -147,7 +147,7 @@ acpi_tb_print_table_header(acpi_physical_address address, | |||
147 | header)->oem_id, ACPI_OEM_ID_SIZE); | 147 | header)->oem_id, ACPI_OEM_ID_SIZE); |
148 | acpi_tb_fix_string(local_header.oem_id, ACPI_OEM_ID_SIZE); | 148 | acpi_tb_fix_string(local_header.oem_id, ACPI_OEM_ID_SIZE); |
149 | 149 | ||
150 | ACPI_INFO((AE_INFO, "RSDP %p %05X (v%.2d %6.6s)", | 150 | ACPI_INFO((AE_INFO, "RSDP %p %06X (v%.2d %6.6s)", |
151 | ACPI_CAST_PTR(void, address), | 151 | ACPI_CAST_PTR(void, address), |
152 | (ACPI_CAST_PTR(struct acpi_table_rsdp, header)-> | 152 | (ACPI_CAST_PTR(struct acpi_table_rsdp, header)-> |
153 | revision > | 153 | revision > |
@@ -162,7 +162,7 @@ acpi_tb_print_table_header(acpi_physical_address address, | |||
162 | acpi_tb_cleanup_table_header(&local_header, header); | 162 | acpi_tb_cleanup_table_header(&local_header, header); |
163 | 163 | ||
164 | ACPI_INFO((AE_INFO, | 164 | ACPI_INFO((AE_INFO, |
165 | "%4.4s %p %05X (v%.2d %6.6s %8.8s %08X %4.4s %08X)", | 165 | "%4.4s %p %06X (v%.2d %6.6s %8.8s %08X %4.4s %08X)", |
166 | local_header.signature, ACPI_CAST_PTR(void, address), | 166 | local_header.signature, ACPI_CAST_PTR(void, address), |
167 | local_header.length, local_header.revision, | 167 | local_header.length, local_header.revision, |
168 | local_header.oem_id, local_header.oem_table_id, | 168 | local_header.oem_id, local_header.oem_table_id, |
@@ -190,6 +190,16 @@ acpi_status acpi_tb_verify_checksum(struct acpi_table_header *table, u32 length) | |||
190 | { | 190 | { |
191 | u8 checksum; | 191 | u8 checksum; |
192 | 192 | ||
193 | /* | ||
194 | * FACS/S3PT: | ||
195 | * They are the odd tables, have no standard ACPI header and no checksum | ||
196 | */ | ||
197 | |||
198 | if (ACPI_COMPARE_NAME(table->signature, ACPI_SIG_S3PT) || | ||
199 | ACPI_COMPARE_NAME(table->signature, ACPI_SIG_FACS)) { | ||
200 | return (AE_OK); | ||
201 | } | ||
202 | |||
193 | /* Compute the checksum on the table */ | 203 | /* Compute the checksum on the table */ |
194 | 204 | ||
195 | checksum = acpi_tb_checksum(ACPI_CAST_PTR(u8, table), length); | 205 | checksum = acpi_tb_checksum(ACPI_CAST_PTR(u8, table), length); |