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