[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] misra: comment default case in single-clause switch
On 2025-08-11 19:36, Dmytro Prokopchuk1 wrote: MISRA Rule 16.4: Every switch statement shall have a default label. Thedefault clause must contain either a statement or a comment prior to itsterminating break statement. This change adds comments in default cases in single-clause switches toavoid violations of the rule where the `default` clause lacks a suitablecomment or statement. If you want to go this way then at least this config wants dropping:-doc_begin="A switch statement with a single switch clause and no default label may be used in place of an equivalent if statement if it is considered to improve readability." -config=MC3A2.R16.4,switch_clauses+={deliberate,"switch(1)&&default(0)"} -doc_end and probably this one too (haven't checked):-doc_begin="A switch statement with a single switch clause and no default label may be used in place of an equivalent if statement if it is considered to improve readability." -config=MC3A2.R16.6,switch_clauses+={deliberate, "default(0)"} -doc_endIn the end it's a tradeoff; placing a comment with a suitable argumentation might be strictly better than simply tagging the tool report, at least from a developer's perspective. From a MISRA compliance standpoint in my opinion both are fine. Let's see what the maintainers think. Signed-off-by: Dmytro Prokopchuk <dmytro_prokopchuk1@xxxxxxxx> --- xen/arch/arm/cpuerrata.c | 5 +++++ xen/arch/arm/gic.c | 6 ++++++ xen/arch/arm/mmu/p2m.c | 6 ++++++ xen/arch/arm/time.c | 6 ++++++ xen/common/kexec.c | 6 ++++++ 5 files changed, 29 insertions(+) diff --git a/xen/arch/arm/cpuerrata.c b/xen/arch/arm/cpuerrata.c index 17cf134f1b..e31c72694b 100644 --- a/xen/arch/arm/cpuerrata.c +++ b/xen/arch/arm/cpuerrata.c@@ -735,6 +735,11 @@ static int cpu_errata_callback(struct notifier_block *nfb,rc = enable_nonboot_cpu_caps(arm_errata); break; default: + /*+ * Default case left empty as other notifier actions do not require handling here. + * The single CPU_STARTING action in the switch is sufficient because this function + * specifically handles enabling errata workarounds during CPU startup.+ */ break; } diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index e80fe0ca24..dfbb0dfe08 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c@@ -436,6 +436,12 @@ static int cpu_gic_callback(struct notifier_block *nfb,release_irq(gic_hw_ops->info->maintenance_irq, NULL); break; default: + /*+ * Default case left empty as other notifier actions do not require handling here. + * The CPU_DYING action specifically handles releasing resources acquired by + * init_maintenance_interrupt(), when the CPU is being taken offline. Other CPU+ * actions do not require GIC-specific handling. + */ break; } diff --git a/xen/arch/arm/mmu/p2m.c b/xen/arch/arm/mmu/p2m.c index 51abf3504f..d1f0ae0226 100644 --- a/xen/arch/arm/mmu/p2m.c +++ b/xen/arch/arm/mmu/p2m.c@@ -1828,6 +1828,12 @@ static int cpu_virt_paging_callback(struct notifier_block *nfb,setup_virt_paging_one(NULL); break; default: + /*+ * Default case left empty as other notifier actions do not require handling here. + * The CPU_STARTING action is specifically handled because this function sets up + * virtual paging for CPUs, particularly for non-boot CPUs during hotplug. Other+ * actions do not involve virtual paging setup. + */ break; } diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c index e74d30d258..4776110d97 100644 --- a/xen/arch/arm/time.c +++ b/xen/arch/arm/time.c@@ -382,6 +382,12 @@ static int cpu_time_callback(struct notifier_block *nfb,deinit_timer_interrupt(); break; default: + /*+ * Default case left empty as other notifier actions do not require handling here. + * The CPU_DYING action is specifically handled to revert actions done in + * init_timer_interrupt() and properly disable timer interrupts on the CPU being + * taken offline. Other actions do not involve timer deinitialization.+ */ break; } diff --git a/xen/common/kexec.c b/xen/common/kexec.c index 84fe8c3597..0f78087a4a 100644 --- a/xen/common/kexec.c +++ b/xen/common/kexec.c @@ -549,6 +549,12 @@ static int cf_check cpu_callback( kexec_init_cpu_notes(cpu); break; default: + /*+ * Default case left empty as other notifier actions do not require handling here. + * The CPU_UP_PREPARE action is specifically handled to allocate crash note buffers + * for a newly onlined CPU. Other actions do not pertain to crash note allocation+ * or memory preservation for kexec. + */ break; } return NOTIFY_DONE; -- Nicola Vetrini, B.Sc. Software Engineer BUGSENG (https://bugseng.com) LinkedIn: https://www.linkedin.com/in/nicola-vetrini-a42471253
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |