]> xenbits.xensource.com Git - people/royger/xen.git/commitdiff
xen/arm: traps: add ASSERT_UNREACHABLE() where needed
authorNicola Vetrini <nicola.vetrini@bugseng.com>
Mon, 18 Dec 2023 10:17:30 +0000 (11:17 +0100)
committerStefano Stabellini <stefano.stabellini@amd.com>
Wed, 20 Dec 2023 01:13:50 +0000 (17:13 -0800)
The statements after a call to the noreturn function 'do_unexpected_trap'
can't be reached, thus violating MISRA C:2012 Rule 2.1
("A project shall not contain unreachable code.").
ASSERT_UNREACHABLE() is used to signal that the unreachable break-s are used as
a defensive coding measure to prevent inadvertent fallthrough.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/traps.c

index 3784e8276ef6ded5f5e8d38d821fa12e9449df51..77220ba0927a2f17fce63473d27524cbcf3ad5f7 100644 (file)
@@ -2152,6 +2152,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
     case HSR_EC_SVE:
         /* An SVE exception is a bug somewhere in hypervisor code */
         do_unexpected_trap("SVE trap at EL2", regs);
+        ASSERT_UNREACHABLE();
         break;
 #endif
     case HSR_EC_DATA_ABORT_CURR_EL:
@@ -2171,7 +2172,7 @@ void do_trap_hyp_sync(struct cpu_user_regs *regs)
             dump_hyp_walk(get_hfar(is_data));
 
         do_unexpected_trap(fault, regs);
-
+        ASSERT_UNREACHABLE();
         break;
     }
     default: