madvise_walk_vmas() is used for two visit functions, namely madvise_vma_anon_name() and madvise_walk_vmas(). The visit function type is defined to receive an 'unsigned long' type argument. But, both visit functions need a pointer argument, so casting the arguments between 'unsinged long' and the real pointer types. It is more idiomatic and clean to use a void pointer type for such cases. Update the visit function type to receive a void pointer as the argument and cleanup the type-casting code. Signed-off-by: SeongJae Park <sj@xxxxxxxxxx> --- mm/madvise.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/mm/madvise.c b/mm/madvise.c index 8c4c128eaeb7..6fa7dabe5bad 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1253,9 +1253,9 @@ struct madvise_behavior { static int madvise_vma_behavior(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, - unsigned long behavior_arg) + void *behavior_arg) { - struct madvise_behavior *arg = (struct madvise_behavior *)behavior_arg; + struct madvise_behavior *arg = behavior_arg; int behavior = arg->behavior; int error; struct anon_vma_name *anon_name; @@ -1468,10 +1468,10 @@ static bool process_madvise_remote_valid(int behavior) */ static int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, - unsigned long end, unsigned long arg, + unsigned long end, void *arg, int (*visit)(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, - unsigned long end, unsigned long arg)) + unsigned long end, void *arg)) { struct vm_area_struct *vma; struct vm_area_struct *prev; @@ -1529,7 +1529,7 @@ int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, static int madvise_vma_anon_name(struct vm_area_struct *vma, struct vm_area_struct **prev, unsigned long start, unsigned long end, - unsigned long anon_name) + void *anon_name) { int error; @@ -1538,7 +1538,7 @@ static int madvise_vma_anon_name(struct vm_area_struct *vma, return -EBADF; error = madvise_update_vma(vma, prev, start, end, vma->vm_flags, - (struct anon_vma_name *)anon_name); + anon_name); /* * madvise() returns EAGAIN if kernel resources, such as @@ -1570,7 +1570,7 @@ int madvise_set_anon_name(struct mm_struct *mm, unsigned long start, if (end == start) return 0; - return madvise_walk_vmas(mm, start, end, (unsigned long)anon_name, + return madvise_walk_vmas(mm, start, end, anon_name, madvise_vma_anon_name); } #endif /* CONFIG_ANON_VMA_NAME */ @@ -1689,8 +1689,7 @@ static int madvise_do_behavior(struct mm_struct *mm, if (is_memory_populate(behavior)) error = madvise_populate(mm, start, end, behavior); else - error = madvise_walk_vmas(mm, start, end, - (unsigned long)madv_behavior, + error = madvise_walk_vmas(mm, start, end, madv_behavior, madvise_vma_behavior); blk_finish_plug(&plug); return error; -- 2.39.5