Message ID | 7498607873ad7c9ff59d0a24d35391c0e4ba0a11.1269936879.git.eduard.munteanu@linux360.ro (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/hw/acpi.c b/hw/acpi.c index f067f85..bb015f3 100644 --- a/hw/acpi.c +++ b/hw/acpi.c @@ -832,11 +832,16 @@ size_t acpi_tables_len, acpi_tables_prev_len; static int acpi_checksum(const uint8_t *data, int len) { int sum, i; + struct acpi_table_header *acpi_hdr; sum = 0; for(i = 0; i < len; i++) sum += data[i]; + /* Ignore preexisting garbage in checksum. */ + acpi_hdr = (struct acpi_table_header *) data; + sum -= acpi_hdr->checksum; + return (-sum) & 0xff; }