[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GRUB unexpected trap in Itanium
From: |
Pedro Miguel Justo |
Subject: |
GRUB unexpected trap in Itanium |
Date: |
Fri, 11 Aug 2023 00:11:47 +0000 |
Hello!
It seems as a recent change has caused a regression on Itanium (ia64),
rendering the platform unbootable. GRUB will crash very early with:
```
Welcome to GRUB!
7 0 0x00006B 0x000000000000001E unexpected trap
7 0 0x000066 0x000000000000001E trap taken, number in ext PE
7 0 0x00003C 0x0000000000005A00 trap taken, offset in ext PE
```
I have bisected the issue and it resulted into the following change:
```
06edd40db76bb78457ac26156ed5f7b62381bbe8 is the first bad commit
commit 06edd40db76bb78457ac26156ed5f7b62381bbe8
Author: Oliver Steffen <osteffen@redhat.com>
Date: Fri May 26 13:35:43 2023 +0200
guid: Unify GUID types
There are 3 implementations of a GUID in GRUB. Replace them with
a common one, placed in types.h.
It uses the "packed" flavor of the GUID structs, the alignment attribute
is dropped, since it is not required.
Signed-off-by: Oliver Steffen <osteffen@redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
```
The issue is most likely related with an unaligned memory access exception
resulting from may global GUID variables being changed from `grub_efi_guid_t`
(which are decorated with `__attribute__ ((aligned(8)))`) to the new and
unified `grub_guid_t` type (now decorated with `__attribute__ ((packed))`).
Do you concur?
Pedro
- GRUB unexpected trap in Itanium,
Pedro Miguel Justo <=