x86/domain: deviate violation of MISRA C Rule 20.12

MISRA C Rule 20.12 states: "A macro parameter used as an operand to
the # or ## operators, which is itself subject to further macro replacement,
shall only be used as an operand to these operators".

In this case, builds where CONFIG_COMPAT=y the fpu_ctxt
macro is used both as a regular macro argument and as an operand for
stringification in the expansion of CHECK_FIELD_.
This is deviated using a SAF-x-safe comment.

No functional change.

Signed-off-by: Nicola Vetrini <nicola.vetrini@bugseng.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
Nicola Vetrini authored and Jan Beulich committed 2024-06-10 10:34:05 +02:00
1 parent e63209d3ba
commit 0a5b2ca32c
3 files changed
+10

No files matched your search

+8
View File
@@ -52,6 +52,14 @@
},
{
"id": "SAF-6-safe",
"analyser": {
"eclair": "MC3R1.R20.12"
},
"name": "MC3R1.R20.12: use of a macro argument that deliberately violates the Rule",
"text": "A macro parameter that is itself a macro is intentionally used within the macro both as a regular parameter and for text replacement."
},
{
"id": "SAF-7-safe",
"analyser": {},
"name": "Sentinel",
"text": "Next ID to be used"
+1
View File
@@ -1084,6 +1084,7 @@ void arch_domain_creation_finished(struct domain *d)
#ifdef CONFIG_COMPAT
#define xen_vcpu_guest_context vcpu_guest_context
#define fpu_ctxt fpu_ctxt.x
/* SAF-6-safe Rule 20.12 expansion of macro fpu_ctxt with CONFIG_COMPAT */
CHECK_FIELD_(struct, vcpu_guest_context, fpu_ctxt);
#undef fpu_ctxt
#undef xen_vcpu_guest_context
+1
View File
@@ -1326,6 +1326,7 @@ long arch_do_domctl(
#ifdef CONFIG_COMPAT
#define xen_vcpu_guest_context vcpu_guest_context
#define fpu_ctxt fpu_ctxt.x
/* SAF-6-safe Rule 20.12 expansion of macro fpu_ctxt with CONFIG_COMPAT */
CHECK_FIELD_(struct, vcpu_guest_context, fpu_ctxt);
#undef fpu_ctxt
#undef xen_vcpu_guest_context
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.