summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpica/utfileio.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/drivers/acpi/acpica/utfileio.c b/drivers/acpi/acpica/utfileio.c
index c8f63594b198..bdf9914733cb 100644
--- a/drivers/acpi/acpica/utfileio.c
+++ b/drivers/acpi/acpica/utfileio.c
@@ -150,6 +150,7 @@ acpi_ut_read_table(FILE * fp,
acpi_status status;
u32 file_size;
u8 standard_header = TRUE;
+ s32 count;
/* Get the file size */
@@ -164,27 +165,21 @@ acpi_ut_read_table(FILE * fp,
/* Read the signature */
- if (fread(&table_header, 1, 4, fp) != 4) {
- acpi_os_printf("Could not read the table signature\n");
+ fseek(fp, 0, SEEK_SET);
+
+ count = fread(&table_header, 1, sizeof(struct acpi_table_header), fp);
+ if (count != sizeof(struct acpi_table_header)) {
+ acpi_os_printf("Could not read the table header\n");
return (AE_BAD_HEADER);
}
- fseek(fp, 0, SEEK_SET);
-
/* The RSDP table does not have standard ACPI header */
- if (ACPI_COMPARE_NAME(table_header.signature, "RSD ")) {
+ if (ACPI_VALIDATE_RSDP_SIG(table_header.signature)) {
*table_length = file_size;
standard_header = FALSE;
} else {
- /* Read the table header */
- if (fread
- (&table_header, 1, sizeof(struct acpi_table_header),
- fp) != sizeof(struct acpi_table_header)) {
- acpi_os_printf("Could not read the table header\n");
- return (AE_BAD_HEADER);
- }
#if 0
/* Validate the table header/length */