]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
mm/damon: fix missing parens in macro arguments
authorMaksym Shcherba <maksym.shcherba@lnu.edu.ua>
Thu, 21 May 2026 20:20:19 +0000 (23:20 +0300)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 4 Jun 2026 21:45:02 +0000 (14:45 -0700)
Patch series "mm/damon: fix macro arguments and clarify quota goals doc",
v2.

This patch (of 2):

The DAMON iterator macros do not wrap their pointer arguments with
parentheses.  This can cause build failures when the argument is a complex
expression due to operator precedence issues.

Add missing parentheses around the arguments in the following macros
to prevent potential build failures:
- damon_for_each_region()
- damon_for_each_region_from()
- damon_for_each_region_safe()
- damos_for_each_quota_goal()

Link: https://lore.kernel.org/20260521202020.126500-1-maksym.shcherba@lnu.edu.ua
Link: https://lore.kernel.org/20260521202020.126500-2-maksym.shcherba@lnu.edu.ua
Signed-off-by: Maksym Shcherba <maksym.shcherba@lnu.edu.ua>
Reviewed-by: SeongJae Park <sj@kernel.org>
Assisted-by: Antigravity:Gemini-3.1-Pro
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/damon.h

index 638ee65f88dcb12c8c391feeaced92c08738f96f..6f7edb3590ef97e9e493842499d15f3e24f050b9 100644 (file)
@@ -963,13 +963,13 @@ static inline unsigned long damon_sz_region(struct damon_region *r)
        list_for_each_entry_safe(p, next, &(ctx)->probes, list)
 
 #define damon_for_each_region(r, t) \
-       list_for_each_entry(r, &t->regions_list, list)
+       list_for_each_entry(r, &(t)->regions_list, list)
 
 #define damon_for_each_region_from(r, t) \
-       list_for_each_entry_from(r, &t->regions_list, list)
+       list_for_each_entry_from(r, &(t)->regions_list, list)
 
 #define damon_for_each_region_safe(r, next, t) \
-       list_for_each_entry_safe(r, next, &t->regions_list, list)
+       list_for_each_entry_safe(r, next, &(t)->regions_list, list)
 
 #define damon_for_each_target(t, ctx) \
        list_for_each_entry(t, &(ctx)->adaptive_targets, list)
@@ -984,7 +984,7 @@ static inline unsigned long damon_sz_region(struct damon_region *r)
        list_for_each_entry_safe(s, next, &(ctx)->schemes, list)
 
 #define damos_for_each_quota_goal(goal, quota) \
-       list_for_each_entry(goal, &quota->goals, list)
+       list_for_each_entry(goal, &(quota)->goals, list)
 
 #define damos_for_each_quota_goal_safe(goal, next, quota) \
        list_for_each_entry_safe(goal, next, &(quota)->goals, list)