Skip to content

Commit

Permalink
efi/cper: Fix cper_arm_ctx_info alignment
Browse files Browse the repository at this point in the history
According to the UEFI Common Platform Error Record appendix, the
processor context information structure is a variable length structure,
but "is padded with zeros if the size is not a multiple of 16 bytes".

Currently this isn't honoured, causing all but the first structure to
be garbage when printed. Thus align the size to be a multiple of 16.

Signed-off-by: Patrick Rudolph <[email protected]>
Signed-off-by: Ard Biesheuvel <[email protected]>
  • Loading branch information
PatrickRudolph authored and ardbiesheuvel committed Feb 23, 2025
1 parent 174e5e9 commit d6a2d02
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/firmware/efi/cper-arm.c
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,7 @@ void cper_print_proc_arm(const char *pfx,
ctx_info = (struct cper_arm_ctx_info *)err_info;
max_ctx_type = ARRAY_SIZE(arm_reg_ctx_strs) - 1;
for (i = 0; i < proc->context_info_num; i++) {
int size = sizeof(*ctx_info) + ctx_info->size;
int size = ALIGN(sizeof(*ctx_info) + ctx_info->size, 16);

printk("%sContext info structure %d:\n", pfx, i);
if (len < size) {
Expand Down

0 comments on commit d6a2d02

Please sign in to comment.