git: e51729f608da - main - linuxkpi: Move `release_pages()` to linux_page.c
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 12 May 2025 17:46:48 UTC
The branch main has been updated by dumbbell:
URL: https://cgit.FreeBSD.org/src/commit/?id=e51729f608dae341b82543d33a11d4ba1f36d46a
commit e51729f608dae341b82543d33a11d4ba1f36d46a
Author: Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
AuthorDate: 2025-04-13 10:58:27 +0000
Commit: Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
CommitDate: 2025-05-12 17:08:02 +0000
linuxkpi: Move `release_pages()` to linux_page.c
We want to avoid putting code managing memory in inline functions in the
future.
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49810
---
sys/compat/linuxkpi/common/include/linux/mm.h | 3 +++
sys/compat/linuxkpi/common/include/linux/pagemap.h | 9 ---------
sys/compat/linuxkpi/common/src/linux_page.c | 9 +++++++++
3 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/sys/compat/linuxkpi/common/include/linux/mm.h b/sys/compat/linuxkpi/common/include/linux/mm.h
index b4c8bf3c1c30..17b7a4137b7a 100644
--- a/sys/compat/linuxkpi/common/include/linux/mm.h
+++ b/sys/compat/linuxkpi/common/include/linux/mm.h
@@ -275,6 +275,9 @@ get_page(struct page *page)
vm_page_wire(page);
}
+void linux_release_pages(struct page **pages, int nr);
+#define release_pages(pages, nr) linux_release_pages((pages), (nr))
+
extern long
lkpi_get_user_pages(unsigned long start, unsigned long nr_pages,
unsigned int gup_flags, struct page **);
diff --git a/sys/compat/linuxkpi/common/include/linux/pagemap.h b/sys/compat/linuxkpi/common/include/linux/pagemap.h
index 7244b61257dc..92159f7a2eb8 100644
--- a/sys/compat/linuxkpi/common/include/linux/pagemap.h
+++ b/sys/compat/linuxkpi/common/include/linux/pagemap.h
@@ -39,15 +39,6 @@
unsigned long linux_invalidate_mapping_pages(vm_object_t obj, pgoff_t start,
pgoff_t end);
-static inline void
-release_pages(struct page **pages, int nr)
-{
- int i;
-
- for (i = 0; i < nr; i++)
- put_page(pages[i]);
-}
-
static inline void
mapping_clear_unevictable(vm_object_t mapping)
{
diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c
index 93aaea01f0df..5114dc708a9e 100644
--- a/sys/compat/linuxkpi/common/src/linux_page.c
+++ b/sys/compat/linuxkpi/common/src/linux_page.c
@@ -177,6 +177,15 @@ linux_free_pages(struct page *page, unsigned int order)
}
}
+void
+linux_release_pages(struct page **pages, int nr)
+{
+ int i;
+
+ for (i = 0; i < nr; i++)
+ put_page(pages[i]);
+}
+
vm_offset_t
linux_alloc_kmem(gfp_t flags, unsigned int order)
{