1 From aa80270154d8593496a1f80398c1c66ddf87d635 Mon Sep 17 00:00:00 2001
2 From: Vladimir 'phcoder' Serbinenko <phcoder@gmail.com>
3 Date: Fri, 15 Mar 2024 22:02:07 +0300
4 Subject: acpi: Mark MADT entries as packed
6 No alignment is guaranteed and in fact on my IA-64 SAPIC is aligned
7 to 4 bytes instead of 8 and causes a trap. It affects only rarely used
8 lsacpi command and so went unnoticed.
10 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
11 Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
13 include/grub/acpi.h | 11 ++++++-----
14 1 file changed, 6 insertions(+), 5 deletions(-)
16 diff --git a/include/grub/acpi.h b/include/grub/acpi.h
17 index 17aadb8..f2862da 100644
18 --- a/include/grub/acpi.h
19 +++ b/include/grub/acpi.h
20 @@ -81,6 +81,7 @@ struct grub_acpi_fadt
22 #define GRUB_ACPI_MADT_SIGNATURE "APIC"
24 +/* Note: here GRUB_PACKED is not needed because we have grub_uint8_t only. */
25 struct grub_acpi_madt_entry_header
28 @@ -112,7 +113,7 @@ struct grub_acpi_madt_entry_lapic
35 struct grub_acpi_madt_entry_ioapic
37 @@ -121,7 +122,7 @@ struct grub_acpi_madt_entry_ioapic
39 grub_uint32_t address;
40 grub_uint32_t global_sys_interrupt;
44 struct grub_acpi_madt_entry_interrupt_override
46 @@ -148,7 +149,7 @@ struct grub_acpi_madt_entry_sapic
48 grub_uint32_t global_sys_interrupt_base;
53 struct grub_acpi_madt_entry_lsapic
55 @@ -160,7 +161,7 @@ struct grub_acpi_madt_entry_lsapic
57 grub_uint32_t cpu_uid;
58 grub_uint8_t cpu_uid_str[0];
62 struct grub_acpi_madt_entry_platform_int_source
64 @@ -172,7 +173,7 @@ struct grub_acpi_madt_entry_platform_int_source
65 grub_uint8_t sapic_vector;
66 grub_uint32_t global_sys_int;
67 grub_uint32_t src_flags;