|
@@ -3896,8 +3896,8 @@ EXPORT_SYMBOL(free_pages);
|
|
|
* drivers to provide a backing region of memory for use as either an
|
|
|
* sk_buff->head, or to be used in the "frags" portion of skb_shared_info.
|
|
|
*/
|
|
|
-static struct page *__page_frag_refill(struct page_frag_cache *nc,
|
|
|
- gfp_t gfp_mask)
|
|
|
+static struct page *__page_frag_cache_refill(struct page_frag_cache *nc,
|
|
|
+ gfp_t gfp_mask)
|
|
|
{
|
|
|
struct page *page = NULL;
|
|
|
gfp_t gfp = gfp_mask;
|
|
@@ -3917,19 +3917,20 @@ static struct page *__page_frag_refill(struct page_frag_cache *nc,
|
|
|
return page;
|
|
|
}
|
|
|
|
|
|
-void __page_frag_drain(struct page *page, unsigned int order,
|
|
|
- unsigned int count)
|
|
|
+void __page_frag_cache_drain(struct page *page, unsigned int count)
|
|
|
{
|
|
|
VM_BUG_ON_PAGE(page_ref_count(page) == 0, page);
|
|
|
|
|
|
if (page_ref_sub_and_test(page, count)) {
|
|
|
+ unsigned int order = compound_order(page);
|
|
|
+
|
|
|
if (order == 0)
|
|
|
free_hot_cold_page(page, false);
|
|
|
else
|
|
|
__free_pages_ok(page, order);
|
|
|
}
|
|
|
}
|
|
|
-EXPORT_SYMBOL(__page_frag_drain);
|
|
|
+EXPORT_SYMBOL(__page_frag_cache_drain);
|
|
|
|
|
|
void *page_frag_alloc(struct page_frag_cache *nc,
|
|
|
unsigned int fragsz, gfp_t gfp_mask)
|
|
@@ -3940,7 +3941,7 @@ void *page_frag_alloc(struct page_frag_cache *nc,
|
|
|
|
|
|
if (unlikely(!nc->va)) {
|
|
|
refill:
|
|
|
- page = __page_frag_refill(nc, gfp_mask);
|
|
|
+ page = __page_frag_cache_refill(nc, gfp_mask);
|
|
|
if (!page)
|
|
|
return NULL;
|
|
|
|