From a8b4b75d241b0ae03cc2f11589339515afa41773 Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Thu, 2 Aug 2018 15:12:34 -0600 Subject: exception: Fix segment error code mask The segment error descriptor is actually 13 bits long. BUG=b:109749762 TEST=Verified by causing a segment error Change-Id: I3439f9ce1e8cf0c472c4eb82d74a787718c9609f Signed-off-by: Raul E Rangel Reviewed-on: https://review.coreboot.org/27812 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- payloads/libpayload/arch/x86/exception.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'payloads/libpayload/arch/x86') diff --git a/payloads/libpayload/arch/x86/exception.c b/payloads/libpayload/arch/x86/exception.c index f6bb8c9ccf..b562660910 100644 --- a/payloads/libpayload/arch/x86/exception.c +++ b/payloads/libpayload/arch/x86/exception.c @@ -59,7 +59,7 @@ static const char *names[EXC_COUNT] = { static void print_segment_error_code(u32 code) { - printf("%#x - descriptor %#x in the ", code, (code >> 3) & 0x1f); + printf("%#x - descriptor %#x in the ", code, (code >> 3) & 0x1FFF); if (code & (0x1 << 1)) { printf("IDT"); } else { -- cgit v1.2.3