From e93141075608037f355af5cdb10eab3ffdb76aa9 Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Thu, 8 Sep 2016 11:05:21 -0700 Subject: [PATCH] x86: fatal: don't report bogus interrupt vectors _irq_controller_isr_vector_get() now returns -1 if it couldn't determine which vector was activated. Issue: ZEP-602 Change-Id: Ib0f5dbc3b68cc5e2c3a23121530e178aede20d06 Signed-off-by: Andrew Boie --- arch/x86/core/fatal.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/x86/core/fatal.c b/arch/x86/core/fatal.c index 4558b6120d2..d6bea5bdeb3 100644 --- a/arch/x86/core/fatal.c +++ b/arch/x86/core/fatal.c @@ -80,11 +80,16 @@ FUNC_NORETURN void _NanoFatalErrorHandler(unsigned int reason, case _NANO_ERR_CPU_EXCEPTION: break; - case _NANO_ERR_SPURIOUS_INT: - printk("***** Unhandled interrupt vector %d occurred! " - "*****\n", _irq_controller_isr_vector_get()); - break; + case _NANO_ERR_SPURIOUS_INT: { + int vector = _irq_controller_isr_vector_get(); + printk("***** Unhandled interrupt vector "); + if (vector >= 0) { + printk("%d ", vector); + } + printk("*****\n"); + break; + } case _NANO_ERR_INVALID_TASK_EXIT: printk("***** Invalid Exit Software Error! *****\n"); break;