include/linux/mmzone.h | 7 ------- mm/page_alloc.c | 7 +++++++ 2 files changed, 7 insertions(+), 7 deletions(-)
From: "Mike Rapoport (IBM)" <rppt@kernel.org>
The get_page_from_free_area() helper is only used in mm/page_alloc.c so
move it there to reduce noise in include/linux/mmzone.h
Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
---
include/linux/mmzone.h | 7 -------
mm/page_alloc.c | 7 +++++++
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 96599cb9eb62..8f5a9e2c722a 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -108,13 +108,6 @@ struct free_area {
unsigned long nr_free;
};
-static inline struct page *get_page_from_free_area(struct free_area *area,
- int migratetype)
-{
- return list_first_entry_or_null(&area->free_list[migratetype],
- struct page, lru);
-}
-
static inline bool free_area_empty(struct free_area *area, int migratetype)
{
return list_empty(&area->free_list[migratetype]);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 87d760236dba..2e72fdbdd8db 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1048,6 +1048,13 @@ static inline void del_page_from_free_list(struct page *page, struct zone *zone,
zone->free_area[order].nr_free--;
}
+static inline struct page *get_page_from_free_area(struct free_area *area,
+ int migratetype)
+{
+ return list_first_entry_or_null(&area->free_list[migratetype],
+ struct page, lru);
+}
+
/*
* If this is not the largest possible page, check if the buddy
* of the next-highest order is free. If it is, it's possible
base-commit: 4018ab1f7cec061b8425737328edefebdc0ab832
--
2.35.1
On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > move it there to reduce noise in include/linux/mmzone.h > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> -- Kiryl Shutsemau / Kirill A. Shutemov
On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote:
> From: "Mike Rapoport (IBM)" <rppt@kernel.org>
>
> The get_page_from_free_area() helper is only used in mm/page_alloc.c so
> move it there to reduce noise in include/linux/mmzone.h
>
> Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
> ---
> include/linux/mmzone.h | 7 -------
> mm/page_alloc.c | 7 +++++++
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index 96599cb9eb62..8f5a9e2c722a 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -108,13 +108,6 @@ struct free_area {
> unsigned long nr_free;
> };
>
> -static inline struct page *get_page_from_free_area(struct free_area *area,
> - int migratetype)
> -{
> - return list_first_entry_or_null(&area->free_list[migratetype],
> - struct page, lru);
> -}
> -
> static inline bool free_area_empty(struct free_area *area, int migratetype)
> {
> return list_empty(&area->free_list[migratetype]);
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 87d760236dba..2e72fdbdd8db 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -1048,6 +1048,13 @@ static inline void del_page_from_free_list(struct page *page, struct zone *zone,
> zone->free_area[order].nr_free--;
> }
>
> +static inline struct page *get_page_from_free_area(struct free_area *area,
> + int migratetype)
> +{
> + return list_first_entry_or_null(&area->free_list[migratetype],
> + struct page, lru);
> +}
> +
> /*
> * If this is not the largest possible page, check if the buddy
> * of the next-highest order is free. If it is, it's possible
>
> base-commit: 4018ab1f7cec061b8425737328edefebdc0ab832
> --
> 2.35.1
>
Good catch, I wonder if there are more functions like this that can be dropped
from headers?
Reviewed-by: Lorenzo Stoakes <lstoakes@gmail.com>
On Sun, Mar 19, 2023 at 12:07:43PM +0000, Lorenzo Stoakes wrote: > On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > > move it there to reduce noise in include/linux/mmzone.h Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > Good catch, I wonder if there are more functions like this that can be dropped > from headers? I don't think anything outside mm/ has any reason to see 'struct free_area'. Unfortunately, it's a field in struct zone, so moving it out of mmzone.h will be hard (unless we can move struct zone out of mmzone.h?) free_area_empty() can move to mm/internal.h though
On Sun, Mar 19, 2023 at 08:22:14PM +0000, Matthew Wilcox wrote: > On Sun, Mar 19, 2023 at 12:07:43PM +0000, Lorenzo Stoakes wrote: > > On Sun, Mar 19, 2023 at 01:42:14PM +0200, Mike Rapoport wrote: > > > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > > > > > The get_page_from_free_area() helper is only used in mm/page_alloc.c so > > > move it there to reduce noise in include/linux/mmzone.h > > Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > > > Good catch, I wonder if there are more functions like this that can be dropped > > from headers? > > I don't think anything outside mm/ has any reason to see 'struct > free_area'. Unfortunately, it's a field in struct zone, so moving > it out of mmzone.h will be hard (unless we can move struct zone out of > mmzone.h?) Seems possible but not trivial. > free_area_empty() can move to mm/internal.h though Yes. -- Sincerely yours, Mike.
© 2016 - 2026 Red Hat, Inc.