Re: [XEN PATCH v4] xen/domain: deviate MISRA C Rule 16.2 violation

2024-04-19 Thread Jan Beulich
On 19.04.2024 09:05, Nicola Vetrini wrote:
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -457,6 +457,7 @@ static int domain_teardown(struct domain *d)
>  
>  for_each_vcpu ( d, v )
>  {
> +/* SAF-5-safe MISRA C Rule 16.2: switch label enclosed by for 
> loop*/
>  PROGRESS_VCPU(teardown);

Nit: Missing blank at the end of the comment, which I'll try to remember to
take care of when committing.

Jan



[XEN PATCH v4] xen/domain: deviate MISRA C Rule 16.2 violation

2024-04-19 Thread Nicola Vetrini
MISRA C Rule 16.2 states:
"A switch label shall only be used when the most closely-enclosing
compound statement is the body of a switch statement".

The PROGRESS_VCPU local helper specifies a case that is directly
inside the compound statement of a for loop, hence violating the rule.
To avoid this, the construct is deviated with a text-based deviation.

No functional change.

Signed-off-by: Nicola Vetrini 
Acked-by: Jan Beulich 
---
 docs/misra/safe.json | 8 
 xen/common/domain.c  | 1 +
 2 files changed, 9 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index fe2bc185097d..9b13bcf71706 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -44,6 +44,14 @@
 },
 {
 "id": "SAF-5-safe",
+"analyser": {
+"eclair": "MC3R1.R16.2"
+},
+"name": "MC3R1.R16.2: using a case label when the most 
closely-enclosing compound statement is not a switch statement",
+"text": "A switch label enclosed by some compound statement that 
is not the body of a switch is permitted within local helper macros that are 
unlikely to be misused or misunderstood."
+},
+{
+"id": "SAF-6-safe",
 "analyser": {},
 "name": "Sentinel",
 "text": "Next ID to be used"
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 282c3ab62308..1e555d658c97 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -457,6 +457,7 @@ static int domain_teardown(struct domain *d)
 
 for_each_vcpu ( d, v )
 {
+/* SAF-5-safe MISRA C Rule 16.2: switch label enclosed by for 
loop*/
 PROGRESS_VCPU(teardown);
 
 rc = vcpu_teardown(v);
-- 
2.34.1