From: Oleksandr Andrushchenko <andr2000@gmail.com>
To: xen-devel@lists.xenproject.org
Cc: Artem_Mygaiev@epam.com, sstabellini@kernel.org,
Andrii_Anisov@epam.com,
Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>,
andr2000@gmail.com, julien.grall@arm.com
Subject: [RFC PATCH 1/4] cert:arch/arm: Add missing default labels to switch statements
Date: Fri, 22 Feb 2019 11:57:18 +0200 [thread overview]
Message-ID: <20190222095721.24764-2-andr2000@gmail.com> (raw)
In-Reply-To: <20190222095721.24764-1-andr2000@gmail.com>
From: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
It is required by MISRA [1] that every switch statement has a default
label as a measure of defensive programming technique.
The changes in this patch are to match MISRA C:2012: Rule 16.4
requirements.
[1] https://www.misra.org.uk/
Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
---
xen/arch/arm/decode.c | 3 +++
xen/arch/arm/domain.c | 10 ++++++++++
xen/arch/arm/guest_walk.c | 2 ++
xen/arch/arm/mm.c | 3 +++
xen/arch/arm/p2m.c | 7 +++++++
xen/arch/arm/traps.c | 6 ++++++
xen/arch/arm/vsmc.c | 9 +++++++++
7 files changed, 40 insertions(+)
diff --git a/xen/arch/arm/decode.c b/xen/arch/arm/decode.c
index 8b1e15d11892..1ed37696d678 100644
--- a/xen/arch/arm/decode.c
+++ b/xen/arch/arm/decode.c
@@ -112,6 +112,9 @@ static int decode_thumb(register_t pc, struct hsr_dabt *dabt)
case 3: /* Signed byte */
update_dabt(dabt, reg, 0, true);
break;
+ default:
+ ASSERT_UNREACHABLE();
+ goto bad_thumb;
}
break;
diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
index 6dc633ed5048..ecb43736a7c3 100644
--- a/xen/arch/arm/domain.c
+++ b/xen/arch/arm/domain.c
@@ -439,6 +439,11 @@ unsigned long hypercall_create_continuation(
case 3: regs->x3 = arg; break;
case 4: regs->x4 = arg; break;
case 5: regs->x5 = arg; break;
+ /*
+ * arm_abi Hypercall Calling Convention:
+ * A hypercall can take up to 5 arguments.
+ */
+ default: BUG(); break;
}
}
@@ -462,6 +467,11 @@ unsigned long hypercall_create_continuation(
case 3: regs->r3 = arg; break;
case 4: regs->r4 = arg; break;
case 5: regs->r5 = arg; break;
+ /*
+ * arm_abi Hypercall Calling Convention:
+ * A hypercall can take up to 5 arguments.
+ */
+ default: BUG(); break;
}
}
diff --git a/xen/arch/arm/guest_walk.c b/xen/arch/arm/guest_walk.c
index 7db7a7321b20..8c4be32b7ef8 100644
--- a/xen/arch/arm/guest_walk.c
+++ b/xen/arch/arm/guest_walk.c
@@ -101,6 +101,8 @@ static bool guest_walk_sd(const struct vcpu *v,
switch ( pte.walk.dt )
{
+ default:
+ /* Fall through. */
case L1DESC_INVALID:
return false;
diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
index 01ae2cccc068..ba5bf5b2b3ba 100644
--- a/xen/arch/arm/mm.c
+++ b/xen/arch/arm/mm.c
@@ -1112,6 +1112,9 @@ static void set_pte_flags_on_range(const char *p, unsigned long l, enum mg mg)
pte.pt.xn = 0;
pte.pt.ro = 1;
break;
+ default:
+ pte.pt.valid = 0;
+ break;
}
write_pte(xen_xenmap + i, pte);
}
diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
index c38bd7e16e26..1e12dc0fd482 100644
--- a/xen/arch/arm/p2m.c
+++ b/xen/arch/arm/p2m.c
@@ -540,6 +540,10 @@ static void p2m_set_permission(lpae_t *e, p2m_type_t t, p2m_access_t a)
case p2m_max_real_type:
BUG();
break;
+
+ default:
+ BUG();
+ break;
}
/* Then restrict with access permissions */
@@ -574,6 +578,9 @@ static void p2m_set_permission(lpae_t *e, p2m_type_t t, p2m_access_t a)
e->p2m.read = e->p2m.write = 0;
e->p2m.xn = 1;
break;
+ default:
+ BUG();
+ break;
}
}
diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
index 8741aa1d59ce..42e1bd54d31f 100644
--- a/xen/arch/arm/traps.c
+++ b/xen/arch/arm/traps.c
@@ -1306,6 +1306,10 @@ int do_bug_frame(const struct cpu_user_regs *regs, vaddr_t pc)
show_execution_state(regs);
panic("Assertion '%s' failed at %s%s:%d\n",
predicate, prefix, filename, lineno);
+ break;
+
+ default:
+ break;
}
return -EINVAL;
@@ -1972,6 +1976,8 @@ static void do_trap_stage2_abort_guest(struct cpu_user_regs *regs,
advance_pc(regs, hsr);
return;
case IO_UNHANDLED:
+ /* Fall through. */
+ default:
/* IO unhandled, try another way to handle it. */
break;
}
diff --git a/xen/arch/arm/vsmc.c b/xen/arch/arm/vsmc.c
index c72b9a04ff76..9eabed89f9c5 100644
--- a/xen/arch/arm/vsmc.c
+++ b/xen/arch/arm/vsmc.c
@@ -109,6 +109,8 @@ static bool handle_arch(struct cpu_user_regs *regs)
case ARM_SMCCC_ARCH_WORKAROUND_2_FID:
switch ( get_ssbd_state() )
{
+ default:
+ /* Fall through. */
case ARM_SSBD_UNKNOWN:
case ARM_SSBD_FORCE_DISABLE:
break;
@@ -123,6 +125,8 @@ static bool handle_arch(struct cpu_user_regs *regs)
break;
}
break;
+ default:
+ break;
}
set_user_reg(regs, 0, ret);
@@ -152,6 +156,9 @@ static bool handle_arch(struct cpu_user_regs *regs)
return true;
}
+
+ default:
+ break;
}
return false;
@@ -276,6 +283,8 @@ static bool vsmccc_handle_call(struct cpu_user_regs *regs)
case ARM_SMCCC_OWNER_SIP:
handled = platform_smc(regs);
break;
+ default:
+ break;
}
}
--
2.20.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2019-02-22 9:57 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-22 9:57 [RFC PATCH 0/4] Add missing default labels to switch statements Oleksandr Andrushchenko
2019-02-22 9:57 ` Oleksandr Andrushchenko [this message]
2019-02-22 18:24 ` [RFC PATCH 1/4] cert:arch/arm: " Julien Grall
2019-02-22 9:57 ` [RFC PATCH 2/4] cert:xen/common: " Oleksandr Andrushchenko
2019-02-22 9:57 ` [RFC PATCH 3/4] cert:xen/drivers: " Oleksandr Andrushchenko
2019-02-22 9:57 ` [RFC PATCH 4/4] cert:xen/xsm/flask: " Oleksandr Andrushchenko
2019-02-22 10:27 ` [RFC PATCH 0/4] " Andrew Cooper
2019-02-22 11:05 ` Julien Grall
2019-02-22 11:13 ` Oleksandr Andrushchenko
2019-02-22 11:27 ` Julien Grall
2019-02-22 12:01 ` Oleksandr Andrushchenko
2019-02-22 13:27 ` Julien Grall
2019-02-22 21:00 ` Stefano Stabellini
2019-02-22 21:33 ` Andrew Cooper
2019-02-22 21:58 ` Stefano Stabellini
2019-02-22 22:11 ` Julien Grall
2019-02-22 22:34 ` Stefano Stabellini
2019-02-22 23:11 ` Julien Grall
2019-02-25 17:38 ` Stefano Stabellini
2019-02-22 23:13 ` Julien Grall
2019-02-25 10:27 ` Oleksandr Andrushchenko
2019-02-25 10:57 ` Julien Grall
2019-02-22 22:34 ` Andrew Cooper
2019-02-22 22:38 ` Stefano Stabellini
2019-02-22 23:34 ` Julien Grall
2019-02-25 10:00 ` Oleksandr Andrushchenko
2019-02-25 11:08 ` Julien Grall
2019-02-25 11:37 ` Oleksandr Andrushchenko
2019-02-22 23:22 ` Julien Grall
2019-02-22 23:41 ` Andrew Cooper
2019-02-25 10:06 ` Oleksandr Andrushchenko
2019-02-25 11:10 ` Julien Grall
2019-02-25 11:43 ` Oleksandr Andrushchenko
2019-02-25 9:50 ` Oleksandr Andrushchenko
2019-02-25 11:23 ` Julien Grall
2019-02-25 11:49 ` Oleksandr Andrushchenko
2019-02-25 12:11 ` Jan Beulich
2019-02-25 12:32 ` Oleksandr Andrushchenko
2019-02-25 12:15 ` Julien Grall
2019-02-25 12:38 ` Oleksandr Andrushchenko
2019-02-25 12:50 ` Julien Grall
2019-02-25 13:06 ` Oleksandr Andrushchenko
2019-02-25 13:22 ` Julien Grall
2019-02-25 13:32 ` Oleksandr Andrushchenko
2019-02-25 13:40 ` Julien Grall
2019-02-25 13:47 ` Oleksandr Andrushchenko
2019-02-25 15:54 ` Lars Kurth
2019-02-25 17:42 ` Stefano Stabellini
2019-02-25 11:40 ` Jan Beulich
2019-02-25 16:58 ` George Dunlap
2019-02-25 17:47 ` Stefano Stabellini
2019-02-25 18:20 ` Julien Grall
2019-02-25 21:13 ` Stefano Stabellini
2019-02-25 21:34 ` Julien Grall
2019-02-26 7:43 ` Oleksandr Andrushchenko
2019-02-26 11:20 ` Jan Beulich
2019-02-26 11:33 ` Oleksandr Andrushchenko
2019-02-26 11:47 ` Jan Beulich
2019-02-26 12:20 ` Oleksandr Andrushchenko
2019-02-26 18:27 ` Stefano Stabellini
2019-02-27 9:23 ` Lars Kurth
2019-02-27 10:16 ` Jan Beulich
2019-02-27 17:34 ` Lars Kurth
2019-02-27 23:45 ` Stefano Stabellini
2019-02-28 10:30 ` Jan Beulich
2019-02-26 21:10 ` Stefano Stabellini
2019-02-26 21:31 ` Julien Grall
2019-02-26 11:14 ` Jan Beulich
2019-02-22 22:08 ` Julien Grall
2019-02-25 10:11 ` Oleksandr Andrushchenko
2019-02-25 11:47 ` Julien Grall
2019-02-25 11:59 ` Oleksandr Andrushchenko
2019-02-25 12:10 ` Jan Beulich
2019-02-22 11:20 ` Andrii Anisov
2019-02-22 11:21 ` Andrii Anisov
2019-02-22 11:30 ` Julien Grall
2019-02-22 11:32 ` Julien Grall
2019-02-22 11:53 ` Andrii Anisov
2019-02-22 13:30 ` Julien Grall
2019-02-25 11:43 ` Julien Grall
2019-02-25 12:00 ` Oleksandr Andrushchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190222095721.24764-2-andr2000@gmail.com \
--to=andr2000@gmail.com \
--cc=Andrii_Anisov@epam.com \
--cc=Artem_Mygaiev@epam.com \
--cc=julien.grall@arm.com \
--cc=oleksandr_andrushchenko@epam.com \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.