xen/x86: resolve the last 3 MISRA R16.6 violations

MISRA R16.6 states that "Every switch statement shall have at least two
switch-clauses". There are only 3 violations left on x86 (zero on ARM).

One of them is only a violation depending on the kconfig configuration.
So deviate it instead with a SAF comment.

Two of them are deliberate to enable future additions. Deviate them as
such.

Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com>
Reviewed-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
Stefano Stabellini committed 2025-02-20 13:32:46 -08:00
1 parent d5b15616b9
commit 37d6d8daba
3 files changed
+19

No files matched your search

+16
View File
@@ -92,6 +92,22 @@
},
{
"id": "SAF-11-safe",
"analyser": {
"eclair": "MC3A2.R16.6"
},
"name": "Rule 16.6: single clause due to kconfig",
"text": "A switch statement with a single switch clause because other switch clauses are disabled in a given kconfig is safe."
},
{
"id": "SAF-12-safe",
"analyser": {
"eclair": "MC3A2.R16.6"
},
"name": "Rule 16.6: single clause due to future expansion",
"text": "A switch statement with a single switch clause to purposely enable future additions of new cases is safe."
},
{
"id": "SAF-13-safe",
"analyser": {},
"name": "Sentinel",
"text": "Next ID to be used"
+2
View File
@@ -3797,6 +3797,7 @@ uint64_t hvm_get_reg(struct vcpu *v, unsigned int reg)
{
ASSERT(v == current || !vcpu_runnable(v));
/* SAF-12-safe */
switch ( reg )
{
default:
@@ -3808,6 +3809,7 @@ void hvm_set_reg(struct vcpu *v, unsigned int reg, uint64_t val)
{
ASSERT(v == current || !vcpu_runnable(v));
/* SAF-12-safe */
switch ( reg )
{
default:
+1
View File
@@ -436,6 +436,7 @@ unsigned long get_stack_trace_bottom(unsigned long sp)
static unsigned long get_shstk_bottom(unsigned long sp)
{
/* SAF-11-safe */
switch ( get_stack_page(sp) )
{
#ifdef CONFIG_XEN_SHSTK
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.