All of lore.kernel.org
 help / color / mirror / Atom feed
* [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7
@ 2024-06-26 13:28 Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C " Nicola Vetrini
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall, Simone Ballarin, Doug Goldstein,
	Roger Pau Monné

Hi all,

this series addresses several violations of Rule 20.7, as well as a
small fix to the ECLAIR integration scripts that do not influence
the current behaviour, but were mistakenly part of the upstream
configuration.

Note that by applying this series the rule has a few leftover violations.
Most of those are in x86 code in xen/arch/x86/include/asm/msi.h .
I did send a patch [1] to deal with those, limited only to addressing the MISRA
violations, but in the end it was dropped in favour of a more general cleanup of
the file upon agreement, so this is why those changes are not included here.

[1] https://lore.kernel.org/xen-devel/2f2c865f20d0296e623f1d65bed25c083f5dd497.1711700095.git.nicola.vetrini@bugseng.com/

Changes in v2:
- Patch 7 is new to this series 

Nicola Vetrini (7):
  automation/eclair: address violations of MISRA C Rule 20.7
  xen/self-tests: address violations of MISRA rule 20.7
  xen/guest_access: address violations of MISRA rule 20.7
  automation/eclair_analysis: address violations of MISRA C Rule 20.7
  x86/irq: address violations of MISRA C Rule 20.7
  automation/eclair_analysis: clean ECLAIR configuration scripts
  x86/traps: address violations of MISRA C Rule 20.7

 automation/eclair_analysis/ECLAIR/analyze.sh     | 3 +--
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++--
 docs/misra/deviations.rst                        | 3 ++-
 docs/misra/safe.json                             | 8 ++++++++
 xen/arch/x86/traps.c                             | 2 +-
 xen/include/xen/bitmap.h                         | 3 +++
 xen/include/xen/guest_access.h                   | 4 ++--
 xen/include/xen/irq.h                            | 2 +-
 xen/include/xen/self-tests.h                     | 8 ++++----
 9 files changed, 26 insertions(+), 13 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-27  0:45   ` Stefano Stabellini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 2/7] xen/self-tests: address violations of MISRA rule 20.7 Nicola Vetrini
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses".

The helper macro bitmap_switch has parameters that cannot be parenthesized
in order to comply with the rule, as that would break its functionality.
Moreover, the risk of misuse due developer confusion is deemed not
substantial enough to warrant a more involved refactor, thus the macro
is deviated for this rule.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
Changes in v2:
- Switched to a comment-based deviation to allow other tools to
pick this deviation up automatically.
---
 docs/misra/safe.json     | 8 ++++++++
 xen/include/xen/bitmap.h | 3 +++
 2 files changed, 11 insertions(+)

diff --git a/docs/misra/safe.json b/docs/misra/safe.json
index c213e0a0be3b..3f18ef401c7d 100644
--- a/docs/misra/safe.json
+++ b/docs/misra/safe.json
@@ -60,6 +60,14 @@
         },
         {
             "id": "SAF-7-safe",
+            "analyser": {
+                "eclair": "MC3R1.R20.7"
+            },
+            "name": "MC3R1.R20.7: deliberately non-parenthesized macro argument",
+            "text": "A macro parameter expands to an expression that is non-parenthesized, as doing so would break the functionality."
+        },
+        {
+            "id": "SAF-8-safe",
             "analyser": {},
             "name": "Sentinel",
             "text": "Next ID to be used"
diff --git a/xen/include/xen/bitmap.h b/xen/include/xen/bitmap.h
index b9f980e91930..6ee39aa35ac6 100644
--- a/xen/include/xen/bitmap.h
+++ b/xen/include/xen/bitmap.h
@@ -103,10 +103,13 @@ extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order);
 #define bitmap_switch(nbits, zero, small, large)			  \
 	unsigned int n__ = (nbits);					  \
 	if (__builtin_constant_p(nbits) && !n__) {			  \
+		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		zero;							  \
 	} else if (__builtin_constant_p(nbits) && n__ <= BITS_PER_LONG) { \
+		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		small;							  \
 	} else {							  \
+		/* SAF-7-safe Rule 20.7 non-parenthesized macro argument */ \
 		large;							  \
 	}
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 2/7] xen/self-tests: address violations of MISRA rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C " Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 3/7] xen/guest_access: " Nicola Vetrini
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---
In this case the use of parentheses can detect misuses of the COMPILE_CHECK
macro for the fn argument that happen to pass the compile-time check
(see e.g. https://godbolt.org/z/n4zTdz595).

An alternative would be to deviate these macros, but since they are used
to check the correctness of other code it seemed the better alternative
to futher ensure that all usages of the macros are safe.
---
 xen/include/xen/self-tests.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/xen/include/xen/self-tests.h b/xen/include/xen/self-tests.h
index 42a4cc4d17fe..58484fe5a8ae 100644
--- a/xen/include/xen/self-tests.h
+++ b/xen/include/xen/self-tests.h
@@ -19,11 +19,11 @@
 #if !defined(CONFIG_CC_IS_CLANG) || CONFIG_CLANG_VERSION >= 80000
 #define COMPILE_CHECK(fn, val, res)                                     \
     do {                                                                \
-        typeof(fn(val)) real = fn(val);                                 \
+        typeof((fn)(val)) real = (fn)(val);                             \
                                                                         \
         if ( !__builtin_constant_p(real) )                              \
             asm ( ".error \"'" STR(fn(val)) "' not compile-time constant\"" ); \
-        else if ( real != res )                                         \
+        else if ( real != (res) )                                       \
             asm ( ".error \"Compile time check '" STR(fn(val) == res) "' failed\"" ); \
     } while ( 0 )
 #else
@@ -37,9 +37,9 @@
  */
 #define RUNTIME_CHECK(fn, val, res)                     \
     do {                                                \
-        typeof(fn(val)) real = fn(HIDE(val));           \
+        typeof((fn)(val)) real = (fn)(HIDE(val));       \
                                                         \
-        if ( real != res )                              \
+        if ( real != (res) )                            \
             panic("%s: %s(%s) expected %u, got %u\n",   \
                   __func__, #fn, #val, real, res);      \
     } while ( 0 )
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 3/7] xen/guest_access: address violations of MISRA rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C " Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 2/7] xen/self-tests: address violations of MISRA rule 20.7 Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 4/7] automation/eclair_analysis: address violations of MISRA C Rule 20.7 Nicola Vetrini
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
 xen/include/xen/guest_access.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/include/xen/guest_access.h b/xen/include/xen/guest_access.h
index a2146749e396..2e0971c4872c 100644
--- a/xen/include/xen/guest_access.h
+++ b/xen/include/xen/guest_access.h
@@ -51,9 +51,9 @@
     ((XEN_GUEST_HANDLE(type)) { &(hnd).p->fld })
 
 #define guest_handle_from_ptr(ptr, type)        \
-    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)(ptr) })
 #define const_guest_handle_from_ptr(ptr, type)  \
-    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)(ptr) })
 
 /*
  * Copy an array of objects to guest context via a guest handle,
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 4/7] automation/eclair_analysis: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
                   ` (2 preceding siblings ...)
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 3/7] xen/guest_access: " Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 5/7] x86/irq: " Nicola Vetrini
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Simone Ballarin, Doug Goldstein,
	Andrew Cooper, George Dunlap, Jan Beulich, Julien Grall

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses".

The local helpers GRP2 and XADD in the x86 emulator use their first
argument as the constant expression for a case label. This pattern
is deviated project-wide, because it is very unlikely to induce
developer confusion and result in the wrong control flow being
carried out.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes in v2:
- Introduce a deviation instead of adding parentheses
---
 automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++--
 docs/misra/deviations.rst                        | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/deviations.ecl b/automation/eclair_analysis/ECLAIR/deviations.ecl
index dcff4f40136c..d12be858fe84 100644
--- a/automation/eclair_analysis/ECLAIR/deviations.ecl
+++ b/automation/eclair_analysis/ECLAIR/deviations.ecl
@@ -458,13 +458,15 @@ unexpected result when the structure is given as argument to a sizeof() operator
 
 -doc_begin="Code violating Rule 20.7 is safe when macro parameters are used: (1)
 as function arguments; (2) as macro arguments; (3) as array indices; (4) as lhs
-in assignments; (5) as initializers, possibly designated, in initalizer lists."
+in assignments; (5) as initializers, possibly designated, in initalizer lists;
+(6) as the constant expression in a switch clause label."
 -config=MC3R1.R20.7,expansion_context=
 {safe, "context(__call_expr_arg_contexts)"},
 {safe, "left_right(^[(,\\[]$,^[),\\]]$)"},
 {safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(array_subscript_expr), subscript)))"},
 {safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(operator(assign), lhs)))"},
-{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(init_list_expr||designated_init_expr), init)))"}
+{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(init_list_expr||designated_init_expr), init)))"},
+{safe, "context(skip_to(__expr_non_syntactic_contexts, stmt_child(node(case_stmt), lower||upper)))"}
 -doc_end
 
 -doc_begin="Violations involving the __config_enabled macros cannot be fixed without
diff --git a/docs/misra/deviations.rst b/docs/misra/deviations.rst
index c6a2affc6a0b..7be232212339 100644
--- a/docs/misra/deviations.rst
+++ b/docs/misra/deviations.rst
@@ -416,7 +416,8 @@ Deviations related to MISRA C:2012 Rules:
        (2) as macro arguments;
        (3) as array indices;
        (4) as lhs in assignments;
-       (5) as initializers, possibly designated, in initalizer lists.
+       (5) as initializers, possibly designated, in initalizer lists;
+       (6) as constant expressions of switch case labels.
      - Tagged as `safe` for ECLAIR.
 
    * - R20.7
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 5/7] x86/irq: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
                   ` (3 preceding siblings ...)
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 4/7] automation/eclair_analysis: address violations of MISRA C Rule 20.7 Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 6/7] automation/eclair_analysis: clean ECLAIR configuration scripts Nicola Vetrini
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
---
Note that the rule does not apply to f because that parameter
is not used as an expression in the macro, but rather as an identifier.
---
 xen/include/xen/irq.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h
index 580ae37e7428..17211f3399b7 100644
--- a/xen/include/xen/irq.h
+++ b/xen/include/xen/irq.h
@@ -178,7 +178,7 @@ extern struct pirq *pirq_get_info(struct domain *d, int pirq);
 
 #define pirq_field(d, p, f, def) ({ \
     const struct pirq *__pi = pirq_info(d, p); \
-    __pi ? __pi->f : def; \
+    __pi ? __pi->f : (def); \
 })
 #define pirq_to_evtchn(d, pirq) pirq_field(d, pirq, evtchn, 0)
 #define pirq_masked(d, pirq) pirq_field(d, pirq, masked, 0)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 6/7] automation/eclair_analysis: clean ECLAIR configuration scripts
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
                   ` (4 preceding siblings ...)
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 5/7] x86/irq: " Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7 Nicola Vetrini
  2024-06-26 13:30 ` [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA " Nicola Vetrini
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Simone Ballarin, Doug Goldstein

Remove from the ECLAIR integration scripts an unused option, which
was already ignored, and make the help texts consistent
with the rest of the scripts.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
---
 automation/eclair_analysis/ECLAIR/analyze.sh | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/automation/eclair_analysis/ECLAIR/analyze.sh b/automation/eclair_analysis/ECLAIR/analyze.sh
index 0ea5520c93a6..e96456c3c18d 100755
--- a/automation/eclair_analysis/ECLAIR/analyze.sh
+++ b/automation/eclair_analysis/ECLAIR/analyze.sh
@@ -11,7 +11,7 @@ fatal() {
 }
 
 usage() {
-  fatal "Usage: ${script_name} <ARM64|X86_64> <Set0|Set1|Set2|Set3>"
+  fatal "Usage: ${script_name} <ARM64|X86_64> <accepted|monitored>"
 }
 
 if [[ $# -ne 2 ]]; then
@@ -40,7 +40,6 @@ ECLAIR_REPORT_LOG=${ECLAIR_OUTPUT_DIR}/REPORT.log
 if [[ "$1" = "X86_64" ]]; then
   export CROSS_COMPILE=
   export XEN_TARGET_ARCH=x86_64
-  EXTRA_ECLAIR_ENV_OPTIONS=-disable=MC3R1.R20.7
 elif [[ "$1" = "ARM64" ]]; then
   export CROSS_COMPILE=aarch64-linux-gnu-
   export XEN_TARGET_ARCH=arm64
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
                   ` (5 preceding siblings ...)
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 6/7] automation/eclair_analysis: clean ECLAIR configuration scripts Nicola Vetrini
@ 2024-06-26 13:28 ` Nicola Vetrini
  2024-06-27  0:46   ` Stefano Stabellini
  2024-06-26 13:30 ` [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA " Nicola Vetrini
  7 siblings, 1 reply; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:28 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Nicola Vetrini, Jan Beulich, Andrew Cooper,
	Roger Pau Monné

MISRA C Rule 20.7 states: "Expressions resulting from the expansion
of macro parameters shall be enclosed in parentheses". Therefore, some
macro definitions should gain additional parentheses to ensure that all
current and future users will be safe with respect to expansions that
can possibly alter the semantics of the passed-in macro parameter.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
---
 xen/arch/x86/traps.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
index 9906e874d593..ee91fc56b125 100644
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -123,7 +123,7 @@ unsigned int __ro_after_init ler_msr;
 const unsigned int nmi_cpu;
 
 #define stack_words_per_line 4
-#define ESP_BEFORE_EXCEPTION(regs) ((unsigned long *)regs->rsp)
+#define ESP_BEFORE_EXCEPTION(regs) ((unsigned long *)(regs)->rsp)
 
 void show_code(const struct cpu_user_regs *regs)
 {
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7
  2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
                   ` (6 preceding siblings ...)
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7 Nicola Vetrini
@ 2024-06-26 13:30 ` Nicola Vetrini
  7 siblings, 0 replies; 12+ messages in thread
From: Nicola Vetrini @ 2024-06-26 13:30 UTC (permalink / raw)
  To: xen-devel
  Cc: sstabellini, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Andrew Cooper, George Dunlap, Jan Beulich,
	Julien Grall, Simone Ballarin, Doug Goldstein,
	Roger Pau Monné

On 2024-06-26 15:28, Nicola Vetrini wrote:
> Hi all,
> 
> this series addresses several violations of Rule 20.7, as well as a
> small fix to the ECLAIR integration scripts that do not influence
> the current behaviour, but were mistakenly part of the upstream
> configuration.
> 
> Note that by applying this series the rule has a few leftover 
> violations.
> Most of those are in x86 code in xen/arch/x86/include/asm/msi.h .
> I did send a patch [1] to deal with those, limited only to addressing 
> the MISRA
> violations, but in the end it was dropped in favour of a more general 
> cleanup of
> the file upon agreement, so this is why those changes are not included 
> here.
> 
> [1] 
> https://lore.kernel.org/xen-devel/2f2c865f20d0296e623f1d65bed25c083f5dd497.1711700095.git.nicola.vetrini@bugseng.com/
> 
> Changes in v2:
> - Patch 7 is new to this series
> 

Sorry, this should have been a v3, rather than a v2

> Nicola Vetrini (7):
>   automation/eclair: address violations of MISRA C Rule 20.7
>   xen/self-tests: address violations of MISRA rule 20.7
>   xen/guest_access: address violations of MISRA rule 20.7
>   automation/eclair_analysis: address violations of MISRA C Rule 20.7
>   x86/irq: address violations of MISRA C Rule 20.7
>   automation/eclair_analysis: clean ECLAIR configuration scripts
>   x86/traps: address violations of MISRA C Rule 20.7
> 
>  automation/eclair_analysis/ECLAIR/analyze.sh     | 3 +--
>  automation/eclair_analysis/ECLAIR/deviations.ecl | 6 ++++--
>  docs/misra/deviations.rst                        | 3 ++-
>  docs/misra/safe.json                             | 8 ++++++++
>  xen/arch/x86/traps.c                             | 2 +-
>  xen/include/xen/bitmap.h                         | 3 +++
>  xen/include/xen/guest_access.h                   | 4 ++--
>  xen/include/xen/irq.h                            | 2 +-
>  xen/include/xen/self-tests.h                     | 8 ++++----
>  9 files changed, 26 insertions(+), 13 deletions(-)

-- 
Nicola Vetrini, BSc
Software Engineer, BUGSENG srl (https://bugseng.com)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C " Nicola Vetrini
@ 2024-06-27  0:45   ` Stefano Stabellini
  0 siblings, 0 replies; 12+ messages in thread
From: Stefano Stabellini @ 2024-06-27  0:45 UTC (permalink / raw)
  To: Nicola Vetrini
  Cc: xen-devel, sstabellini, michal.orzel, xenia.ragiadakou,
	ayan.kumar.halder, consulting, Andrew Cooper, George Dunlap,
	Jan Beulich, Julien Grall

On Wed, 26 Jun 2024, Nicola Vetrini wrote:
> MISRA C Rule 20.7 states: "Expressions resulting from the expansion
> of macro parameters shall be enclosed in parentheses".
> 
> The helper macro bitmap_switch has parameters that cannot be parenthesized
> in order to comply with the rule, as that would break its functionality.
> Moreover, the risk of misuse due developer confusion is deemed not
> substantial enough to warrant a more involved refactor, thus the macro
> is deviated for this rule.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7
  2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7 Nicola Vetrini
@ 2024-06-27  0:46   ` Stefano Stabellini
  2024-06-27 10:39     ` Jan Beulich
  0 siblings, 1 reply; 12+ messages in thread
From: Stefano Stabellini @ 2024-06-27  0:46 UTC (permalink / raw)
  To: Nicola Vetrini
  Cc: xen-devel, sstabellini, michal.orzel, xenia.ragiadakou,
	ayan.kumar.halder, consulting, Jan Beulich, Andrew Cooper,
	Roger Pau Monné

On Wed, 26 Jun 2024, Nicola Vetrini wrote:
> MISRA C Rule 20.7 states: "Expressions resulting from the expansion
> of macro parameters shall be enclosed in parentheses". Therefore, some
> macro definitions should gain additional parentheses to ensure that all
> current and future users will be safe with respect to expansions that
> can possibly alter the semantics of the passed-in macro parameter.
> 
> No functional change.
> 
> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7
  2024-06-27  0:46   ` Stefano Stabellini
@ 2024-06-27 10:39     ` Jan Beulich
  0 siblings, 0 replies; 12+ messages in thread
From: Jan Beulich @ 2024-06-27 10:39 UTC (permalink / raw)
  To: Nicola Vetrini
  Cc: xen-devel, michal.orzel, xenia.ragiadakou, ayan.kumar.halder,
	consulting, Andrew Cooper, Roger Pau Monné,
	Stefano Stabellini

On 27.06.2024 02:46, Stefano Stabellini wrote:
> On Wed, 26 Jun 2024, Nicola Vetrini wrote:
>> MISRA C Rule 20.7 states: "Expressions resulting from the expansion
>> of macro parameters shall be enclosed in parentheses". Therefore, some
>> macro definitions should gain additional parentheses to ensure that all
>> current and future users will be safe with respect to expansions that
>> can possibly alter the semantics of the passed-in macro parameter.
>>
>> No functional change.
>>
>> Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
> 
> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>

Acked-by: Jan Beulich <jbeulich@suse.com>



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-06-27 10:40 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-26 13:28 [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA Rule 20.7 Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 1/7] automation/eclair: address violations of MISRA C " Nicola Vetrini
2024-06-27  0:45   ` Stefano Stabellini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 2/7] xen/self-tests: address violations of MISRA rule 20.7 Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 3/7] xen/guest_access: " Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 4/7] automation/eclair_analysis: address violations of MISRA C Rule 20.7 Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 5/7] x86/irq: " Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 6/7] automation/eclair_analysis: clean ECLAIR configuration scripts Nicola Vetrini
2024-06-26 13:28 ` [XEN PATCH v2 for-4.20 7/7] x86/traps: address violations of MISRA C Rule 20.7 Nicola Vetrini
2024-06-27  0:46   ` Stefano Stabellini
2024-06-27 10:39     ` Jan Beulich
2024-06-26 13:30 ` [XEN PATCH v2 for-4.20 0/7] address several violations of MISRA " Nicola Vetrini

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.