acpi: new function acpi_update_checksum()
Introduce a new function to update ACPI table headers.
This allows to simplify the existing code.
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Matthias Brugger <mbrugger@suse.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/include/acpi/acpi_table.h b/include/acpi/acpi_table.h
index b8b1f133..f8e5f55 100644
--- a/include/acpi/acpi_table.h
+++ b/include/acpi/acpi_table.h
@@ -1274,6 +1274,13 @@
*/
struct acpi_table_header *acpi_find_table(const char *sig);
+/**
+ * acpi_update_checksum() - update ACPI table checksum
+ *
+ * @header - header of an ACPI table
+ */
+void acpi_update_checksum(struct acpi_table_header *header);
+
#endif /* !__ACPI__*/
#include <asm/acpi_table.h>
diff --git a/lib/acpi/acpi.c b/lib/acpi/acpi.c
index f4d5c1e..596301a 100644
--- a/lib/acpi/acpi.c
+++ b/lib/acpi/acpi.c
@@ -6,11 +6,18 @@
*/
#include <mapmem.h>
+#include <tables_csum.h>
#include <acpi/acpi_table.h>
#include <asm/global_data.h>
DECLARE_GLOBAL_DATA_PTR;
+void acpi_update_checksum(struct acpi_table_header *header)
+{
+ header->checksum = 0;
+ header->checksum = table_compute_checksum(header, header->length);
+}
+
struct acpi_table_header *acpi_find_table(const char *sig)
{
struct acpi_rsdp *rsdp;