[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230504200527.1935944-13-mathieu.desnoyers@efficios.com>
Date: Thu, 4 May 2023 16:05:26 -0400
From: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: linux-kernel@...r.kernel.org,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Jens Axboe <axboe@...nel.dk>, linux-block@...r.kernel.org
Subject: [RFC PATCH 12/13] blk-mq.h: Fix parentheses around macro parameter use
Fix the following macro parameter usage patterns in blk-mq.h for
consistency, ensuring that operator precedence is respected:
Added parentheses:
- x->member is changed for (x)->member,
- x.member is changed for (x).member,
- flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT is changed for
(flags) >> BLK_MQ_F_ALLOC_POLICY_START_BIT.
- "x = y" is changed for "x = (y)", because "y" can be an expression
containing a comma if it is the result of the expansion of a macro such
as #define eval(...) __VA_ARGS__, which would cause unexpected operator
precedence. This use-case is far-fetched, but we have to choose one
way or the other (with or without parentheses) for consistency.
Removed parentheses:
- m((x)) is changed for m(x) (the extra parentheses are useless),
- m(x, (y), (z)) is changed for m(x, y, z), because comma is the lowest
priority operator, and thus the extra parentheses are useless,
- v[(x)] is changed for v[x], because the extra parentheses are useless
given that [] already surrounds an expression,
- "(i) = 0" is changed for "i = 0", because "i" is an lvalue, which
makes the extra parentheses useless.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>
Cc: Jens Axboe <axboe@...nel.dk>
Cc: linux-block@...r.kernel.org
---
include/linux/blk-mq.h | 38 +++++++++++++++++++-------------------
1 file changed, 19 insertions(+), 19 deletions(-)
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h
index 06caacd77ed6..4de6ad92530c 100644
--- a/include/linux/blk-mq.h
+++ b/include/linux/blk-mq.h
@@ -223,13 +223,13 @@ static inline unsigned short req_get_ioprio(struct request *req)
#define rq_list_add(listptr, rq) do { \
(rq)->rq_next = *(listptr); \
- *(listptr) = rq; \
+ *(listptr) = (rq); \
} while (0)
#define rq_list_add_tail(lastpptr, rq) do { \
(rq)->rq_next = NULL; \
- **(lastpptr) = rq; \
- *(lastpptr) = &rq->rq_next; \
+ **(lastpptr) = (rq); \
+ *(lastpptr) = &(rq)->rq_next; \
} while (0)
#define rq_list_pop(listptr) \
@@ -251,11 +251,11 @@ static inline unsigned short req_get_ioprio(struct request *req)
})
#define rq_list_for_each(listptr, pos) \
- for (pos = rq_list_peek((listptr)); pos; pos = rq_list_next(pos))
+ for (pos = rq_list_peek(listptr); pos; pos = rq_list_next(pos))
#define rq_list_for_each_safe(listptr, pos, nxt) \
- for (pos = rq_list_peek((listptr)), nxt = rq_list_next(pos); \
- pos; pos = nxt, nxt = pos ? rq_list_next(pos) : NULL)
+ for (pos = rq_list_peek(listptr), nxt = rq_list_next(pos); \
+ pos; pos = (nxt), nxt = (pos) ? rq_list_next(pos) : NULL)
#define rq_list_next(rq) (rq)->rq_next
#define rq_list_empty(list) ((list) == (struct request *) NULL)
@@ -692,10 +692,10 @@ enum {
BLK_MQ_CPU_WORK_BATCH = 8,
};
#define BLK_MQ_FLAG_TO_ALLOC_POLICY(flags) \
- ((flags >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
+ (((flags) >> BLK_MQ_F_ALLOC_POLICY_START_BIT) & \
((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1))
#define BLK_ALLOC_POLICY_TO_MQ_FLAG(policy) \
- ((policy & ((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1)) \
+ (((policy) & ((1 << BLK_MQ_F_ALLOC_POLICY_BITS) - 1)) \
<< BLK_MQ_F_ALLOC_POLICY_START_BIT)
#define BLK_MQ_NO_HCTX_IDX (-1U)
@@ -948,11 +948,11 @@ static inline void *blk_mq_rq_to_pdu(struct request *rq)
}
#define queue_for_each_hw_ctx(q, hctx, i) \
- xa_for_each(&(q)->hctx_table, (i), (hctx))
+ xa_for_each(&(q)->hctx_table, i, hctx)
#define hctx_for_each_ctx(hctx, ctx, i) \
- for ((i) = 0; (i) < (hctx)->nr_ctx && \
- ({ ctx = (hctx)->ctxs[(i)]; 1; }); (i)++)
+ for (i = 0; (i) < (hctx)->nr_ctx && \
+ ({ ctx = (hctx)->ctxs[i]; 1; }); (i)++)
static inline void blk_mq_cleanup_rq(struct request *rq)
{
@@ -1013,20 +1013,20 @@ struct req_iterator {
};
#define __rq_for_each_bio(_bio, rq) \
- if ((rq->bio)) \
- for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next)
+ if ((rq)->bio) \
+ for (_bio = (rq)->bio; _bio; _bio = (_bio)->bi_next)
#define rq_for_each_segment(bvl, _rq, _iter) \
- __rq_for_each_bio(_iter.bio, _rq) \
- bio_for_each_segment(bvl, _iter.bio, _iter.iter)
+ __rq_for_each_bio((_iter).bio, _rq) \
+ bio_for_each_segment(bvl, (_iter).bio, (_iter).iter)
#define rq_for_each_bvec(bvl, _rq, _iter) \
- __rq_for_each_bio(_iter.bio, _rq) \
- bio_for_each_bvec(bvl, _iter.bio, _iter.iter)
+ __rq_for_each_bio((_iter).bio, _rq) \
+ bio_for_each_bvec(bvl, (_iter).bio, (_iter).iter)
#define rq_iter_last(bvec, _iter) \
- (_iter.bio->bi_next == NULL && \
- bio_iter_last(bvec, _iter.iter))
+ ((_iter).bio->bi_next == NULL && \
+ bio_iter_last(bvec, (_iter).iter))
/*
* blk_rq_pos() : the current sector
--
2.25.1
Powered by blists - more mailing lists