mkimage: Pad DTBs to target-specific pointer size

Device tree (DTB) lengths are being padded to a multiple of 4 bytes
rather than the target-specific pointer size. This causes objects
following OBJ_TYPE_DTB objects to be incorrectly parsed during GRUB
execution on arm64.

Fix by using ALIGN_ADDR(), not ALIGN_UP().

Signed-by-off: Matthew Daley <mattd@bugfuzz.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
Matthew Daley 2018-11-07 11:44:08 +13:00 committed by Daniel Kiper
parent e720eef6a6
commit c0a9f53478

View file

@ -829,7 +829,7 @@ grub_install_generate_image (const char *dir, const char *prefix,
if (dtb_path) if (dtb_path)
{ {
dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); dtb_size = ALIGN_ADDR(grub_util_get_image_size (dtb_path));
total_module_size += dtb_size + sizeof (struct grub_module_header); total_module_size += dtb_size + sizeof (struct grub_module_header);
} }