acpi: new function acpi_update_checksum()
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 21 Mar 2025 23:21:16 +0000 (00:21 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 8 Apr 2025 21:22:56 +0000 (15:22 -0600)
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>
include/acpi/acpi_table.h
lib/acpi/acpi.c

index b8b1f13..f8e5f55 100644 (file)
@@ -1274,6 +1274,13 @@ ulong write_acpi_tables(ulong start);
  */
 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>
index f4d5c1e..596301a 100644 (file)
@@ -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;