diff mbox series

[v2] xen/device_tree: Fix MISRA C 2012 Rule 20.7 violations

Message ID 20220830204818.1374930-1-burzalodowa@gmail.com (mailing list archive)
State New, archived
Headers show
Series [v2] xen/device_tree: Fix MISRA C 2012 Rule 20.7 violations | expand

Commit Message

Xenia Ragiadakou Aug. 30, 2022, 8:48 p.m. UTC
Add parentheses around the macro parameters that are used as expressions
to prevent against unintended expansions during macro substitution.

Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com>
---

Changes in v2:
- apply rule 20.7 as is, without deviating from it
- adjust commit message accordingly

Also, in this file, the macro dt_irq(irq) has not been defined properly but
since it is not used, the bug has not been uncovered yet.
I can either fix it or remove it along with macro dt_irq_flags(irq) under
rule 2.5 "A project should not contain unused macro declarations" (advisory)

 xen/include/xen/device_tree.h | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
diff mbox series

Patch

diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h
index 430a1ef445..6e253f5763 100644
--- a/xen/include/xen/device_tree.h
+++ b/xen/include/xen/device_tree.h
@@ -37,11 +37,11 @@  struct dt_device_match {
     const void *data;
 };
 
-#define __DT_MATCH_PATH(p)              .path = p
-#define __DT_MATCH_TYPE(typ)            .type = typ
-#define __DT_MATCH_COMPATIBLE(compat)   .compatible = compat
+#define __DT_MATCH_PATH(p)              .path = (p)
+#define __DT_MATCH_TYPE(typ)            .type = (typ)
+#define __DT_MATCH_COMPATIBLE(compat)   .compatible = (compat)
 #define __DT_MATCH_NOT_AVAILABLE()      .not_available = 1
-#define __DT_MATCH_PROP(p)              .prop = p
+#define __DT_MATCH_PROP(p)              .prop = (p)
 
 #define DT_MATCH_PATH(p)                { __DT_MATCH_PATH(p) }
 #define DT_MATCH_TYPE(typ)              { __DT_MATCH_TYPE(typ) }
@@ -222,13 +222,13 @@  dt_find_interrupt_controller(const struct dt_device_match *matches);
 #define DT_ROOT_NODE_SIZE_CELLS_DEFAULT 1
 
 #define dt_for_each_property_node(dn, pp)                   \
-    for ( pp = dn->properties; pp != NULL; pp = pp->next )
+    for ( (pp) = (dn)->properties; (pp) != NULL; (pp) = (pp)->next )
 
 #define dt_for_each_device_node(dt, dn)                     \
-    for ( dn = dt; dn != NULL; dn = dn->allnext )
+    for ( (dn) = (dt); (dn) != NULL; (dn) = (dn)->allnext )
 
 #define dt_for_each_child_node(dt, dn)                      \
-    for ( dn = dt->child; dn != NULL; dn = dn->sibling )
+    for ( (dn) = (dt)->child; (dn) != NULL; (dn) = (dn)->sibling )
 
 /* Helper to read a big number; size is in cells (not bytes) */
 static inline u64 dt_read_number(const __be32 *cell, int size)