Linux Kernels

mm: rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free

This change “mm: rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free” (commit 8c2dd3e) in Linux kernel is authored by Alexander Duyck <alexander.h.duyck [at]> on Tue Jan 10 16:58:06 2017 -0800.

Description of "mm: rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free"

The change “mm: rename alloc_page_frag to page_frag_alloc and free_page_frag to page_frag_free” introduces changes as follows.

mm: rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free

Patch series "Page fragment updates", v4.

This patch series takes care of a few cleanups for the page fragments

First we do some renames so that things are much more consistent.  First
we move the page_frag_ portion of the name to the front of the functions
names.  Secondly we split out the cache specific functions from the
other page fragment functions by adding the word "cache" to the name.

Finally I added a bit of documentation that will hopefully help to
explain some of this.  I plan to revisit this later as we get things
more ironed out in the near future with the changes planned for the DMA
setup to support eXpress Data Path.

This patch (of 3):

This patch renames the page frag functions to be more consistent with
other APIs.  Specifically we place the name page_frag first in the name
and then have either an alloc or free call name that we append as the
suffix.  This makes it a bit clearer in terms of naming.

In addition we drop the leading double underscores since we are
technically no longer a backing interface and instead the front end that
is called from the networking APIs.

Signed-off-by: Alexander Duyck <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>

Linux kernel releases containing commit 8c2dd3e

The Linux kernel releases containing this commit are as follows.

Linux kernel code changes from "mm: rename __alloc_page_frag to page_frag_alloc and __free_page_frag to page_frag_free"

There are 26 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 include/linux/gfp.h    |  6 +++---
 include/linux/skbuff.h |  2 +-
 mm/page_alloc.c        | 10 +++++-----
 net/core/skbuff.c      |  8 ++++----
 4 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/include/linux/gfp.h b/include/linux/gfp.h
index 7806a8f80abc..ed77a86fbbb0 100644
--- a/include/linux/gfp.h
+++ b/include/linux/gfp.h
@@ -501,9 +501,9 @@ extern void free_hot_cold_page_list(struct list_head *list, bool cold);
 struct page_frag_cache;
 extern void __page_frag_drain(struct page *page, unsigned int order,
 			      unsigned int count);
-extern void *__alloc_page_frag(struct page_frag_cache *nc,
-			       unsigned int fragsz, gfp_t gfp_mask);
-extern void __free_page_frag(void *addr);
+extern void *page_frag_alloc(struct page_frag_cache *nc,
+			     unsigned int fragsz, gfp_t gfp_mask);
+extern void page_frag_free(void *addr);
 #define __free_page(page) __free_pages((page), 0)
 #define free_page(addr) free_pages((addr), 0)
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index b53c0cfd417e..a410715bbef8 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2480,7 +2480,7 @@ static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
 static inline void skb_free_frag(void *addr)
-	__free_page_frag(addr);
+	page_frag_free(addr);
 void *napi_alloc_frag(unsigned int fragsz);
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 74afdb4177cb..097893ffe194 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3931,8 +3931,8 @@ void __page_frag_drain(struct page *page, unsigned int order,
-void *__alloc_page_frag(struct page_frag_cache *nc,
-			unsigned int fragsz, gfp_t gfp_mask)
+void *page_frag_alloc(struct page_frag_cache *nc,
+		      unsigned int fragsz, gfp_t gfp_mask)
 	unsigned int size = PAGE_SIZE;
 	struct page *page;
@@ -3983,19 +3983,19 @@ void *__alloc_page_frag(struct page_frag_cache *nc,
 	return nc->va + offset;
  * Frees a page fragment allocated out of either a compound or order 0 page.
-void __free_page_frag(void *addr)
+void page_frag_free(void *addr)
 	struct page *page = virt_to_head_page(addr);
 	if (unlikely(put_page_testzero(page)))
 		__free_pages_ok(page, compound_order(page));
 static void *make_alloc_exact(unsigned long addr, unsigned int order,
 		size_t size)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 5a03730fbc1a..734c71468b01 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -369,7 +369,7 @@ static void *__netdev_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
 	nc = this_cpu_ptr(&netdev_alloc_cache);
-	data = __alloc_page_frag(nc, fragsz, gfp_mask);
+	data = page_frag_alloc(nc, fragsz, gfp_mask);
 	return data;
@@ -391,7 +391,7 @@ static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
 	struct napi_alloc_cache *nc = this_cpu_ptr(&napi_alloc_cache);
-	return __alloc_page_frag(&nc->page, fragsz, gfp_mask);
+	return page_frag_alloc(&nc->page, fragsz, gfp_mask);
 void *napi_alloc_frag(unsigned int fragsz)
@@ -441,7 +441,7 @@ struct sk_buff *__netdev_alloc_skb(struct net_device *dev, unsigned int len,
 	nc = this_cpu_ptr(&netdev_alloc_cache);
-	data = __alloc_page_frag(nc, len, gfp_mask);
+	data = page_frag_alloc(nc, len, gfp_mask);
 	pfmemalloc = nc->pfmemalloc;
@@ -505,7 +505,7 @@ struct sk_buff *__napi_alloc_skb(struct napi_struct *napi, unsigned int len,
 	if (sk_memalloc_socks())
 		gfp_mask |= __GFP_MEMALLOC;
-	data = __alloc_page_frag(&nc->page, len, gfp_mask);
+	data = page_frag_alloc(&nc->page, len, gfp_mask);
 	if (unlikely(!data))
 		return NULL;

The commit for this change in Linux stable tree is 8c2dd3e (patch).

Last modified: 2020/01/11 09:54