Re: [PATCH V2] LoongArch: Align ACPI structures if ARCH_STRICT_ALIGN enabled

From: ANDREW

Date: Fri Jun 19 2026 - 18:26:49 EST


void
acpi_tb_print_table_header(acpi_physical_address address,
  struct acpi_table_header *header)
{
struct acpi_table_header local_header;

ssize_t ssrc_len = sizeof(ACPI_CAST_PTR(struct acpi_table_rsdp, header)->signature);
size_t src_len = (ssrc_len < 0) ? 0 : (size_t)ssrc_len;
size_t src_length = (src_len < 8) ? src_len : 8;
char rsdp_sig[src_length + 1];
memcpy(rsdp_sig,
      ACPI_CAST_PTR(struct acpi_table_rsdp, header)->signature,
      src_length);
rsdp_sig[src_length] = '\0';

if (ACPI_COMPARE_NAMESEG(header->signature, ACPI_SIG_FACS)) {

/* FACS only has signature and length fields */

ACPI_INFO(("%-4.4s 0x%8.8X%8.8X %06X",
  header->signature, ACPI_FORMAT_UINT64(address),
  header->length));
} else if (ACPI_VALIDATE_RSDP_SIG(rsdp_sig)) {

/* RSDP has no common fields */

memcpy(local_header.oem_id,
      ACPI_CAST_PTR(struct acpi_table_rsdp, header)->oem_id,
      ACPI_OEM_ID_SIZE);
acpi_tb_fix_string(local_header.oem_id, ACPI_OEM_ID_SIZE);

ACPI_INFO(("RSDP 0x%8.8X%8.8X %06X (v%.2d %-6.6s)",
  ACPI_FORMAT_UINT64(address),
  (ACPI_CAST_PTR(struct acpi_table_rsdp, header)->
   revision >
   0) ? ACPI_CAST_PTR(struct acpi_table_rsdp,
      header)->length : 20,
  ACPI_CAST_PTR(struct acpi_table_rsdp,
header)->revision,
  local_header.oem_id));
} else {
/* Standard ACPI table with full common header */

acpi_tb_cleanup_table_header(&local_header, header);

ACPI_INFO(("%-4.4s 0x%8.8X%8.8X"
  " %06X (v%.2d %-6.6s %-8.8s %08X %-4.4s %08X)",
  local_header.signature, ACPI_FORMAT_UINT64(address),
  local_header.length, local_header.revision,
  local_header.oem_id, local_header.oem_table_id,
  local_header.oem_revision,
  local_header.asl_compiler_id,
  local_header.asl_compiler_revision));
}
}

Attachment: publickey - andreasx0@protonmail.ch - 0xBB6B52B1.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature