Return the head page instead of storing it to a passed parameter. Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> --- mm/gup.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/mm/gup.c b/mm/gup.c index 6eedca605b3d..8a0ea220ced1 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -245,9 +245,8 @@ static inline struct page *compound_range_next(unsigned long i, return page; } -static inline void compound_next(unsigned long i, unsigned long npages, - struct page **list, struct page **head, - unsigned int *ntails) +static inline struct page *compound_next(unsigned long i, + unsigned long npages, struct page **list, unsigned int *ntails) { struct page *page; unsigned int nr; @@ -258,8 +257,8 @@ static inline void compound_next(unsigned long i, unsigned long npages, break; } - *head = page; *ntails = nr - i; + return page; } /** @@ -297,7 +296,7 @@ void unpin_user_pages_dirty_lock(struct page **pages, unsigned long npages, } for (index = 0; index < npages; index += ntails) { - compound_next(index, npages, pages, &head, &ntails); + head = compound_next(index, npages, pages, &ntails); /* * Checking PageDirty at this point may race with * clear_page_dirty_for_io(), but that's OK. Two key @@ -386,7 +385,7 @@ void unpin_user_pages(struct page **pages, unsigned long npages) return; for (index = 0; index < npages; index += ntails) { - compound_next(index, npages, pages, &head, &ntails); + head = compound_next(index, npages, pages, &ntails); put_compound_head(head, ntails, FOLL_PIN); } } -- 2.33.0