[PATCH] kdbus: use parentheses in KDBUS_ITEM_FOREACH macro uniformly
From: Sergei Zviagintsev
Date: Thu Jun 04 2015 - 06:40:06 EST
_i is used as loop cursor and must be a proper lvalue, whereas two other
arguments can be complex expressions. Stay uniform across the macro and
enclose _is and _s with parentheses in all cases, but keep _i without
them (any valid lvalue will not break cast to (u8 *) due to precedence
rules). Update documentation example.
List macroses (e.g. list_for_each) were taken as an example for this
change.
Signed-off-by: Sergei Zviagintsev <sergei@xxxxxxxx>
---
Documentation/kdbus/kdbus.item.xml | 4 ++--
ipc/kdbus/item.h | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Documentation/kdbus/kdbus.item.xml b/Documentation/kdbus/kdbus.item.xml
index b0eeeef995af..fb8b6c151a0d 100644
--- a/Documentation/kdbus/kdbus.item.xml
+++ b/Documentation/kdbus/kdbus.item.xml
@@ -73,8 +73,8 @@
#define KDBUS_ITEM_FOREACH(item, head, first) \
for (item = (head)->first; \
- ((uint8_t *)(item) < (uint8_t *)(head) + (head)->size) && \
- ((uint8_t *)(item) >= (uint8_t *)(head)); \
+ ((uint8_t *)item < (uint8_t *)(head) + (head)->size) && \
+ ((uint8_t *)item >= (uint8_t *)(head)); \
item = KDBUS_ITEM_NEXT(item))
]]></programlisting>
</refsect2>
diff --git a/ipc/kdbus/item.h b/ipc/kdbus/item.h
index 03612368b3bb..592b68a7c2db 100644
--- a/ipc/kdbus/item.h
+++ b/ipc/kdbus/item.h
@@ -28,9 +28,9 @@
#define KDBUS_ITEM_PAYLOAD_SIZE(_i) ((_i)->size - KDBUS_ITEM_HEADER_SIZE)
#define KDBUS_ITEMS_FOREACH(_i, _is, _s) \
- for (_i = _is; \
- ((u8 *)(_i) < (u8 *)(_is) + (_s)) && \
- ((u8 *)(_i) >= (u8 *)(_is)); \
+ for (_i = (_is); \
+ ((u8 *)_i < (u8 *)(_is) + (_s)) && \
+ ((u8 *)_i >= (u8 *)(_is)); \
_i = KDBUS_ITEM_NEXT(_i))
#define KDBUS_ITEM_VALID(_i, _is, _s) \
--
1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/