Message ID | 20201125034655.27687-2-willy@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] sparc: Fix handling of page table constructor failure | expand |
On 25.11.20 04:46, Matthew Wilcox (Oracle) wrote: > Code outside mm/ should not be calling free_unref_page(). Also > move free_unref_page_list(). > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> > --- > include/linux/gfp.h | 2 -- > mm/internal.h | 3 +++ > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > index c603237e006c..6e479e9c48ce 100644 > --- a/include/linux/gfp.h > +++ b/include/linux/gfp.h > @@ -580,8 +580,6 @@ void * __meminit alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); > > extern void __free_pages(struct page *page, unsigned int order); > extern void free_pages(unsigned long addr, unsigned int order); > -extern void free_unref_page(struct page *page); > -extern void free_unref_page_list(struct list_head *list); > > struct page_frag_cache; > extern void __page_frag_cache_drain(struct page *page, unsigned int count); > diff --git a/mm/internal.h b/mm/internal.h > index 75ae680d0a2c..5864815947fe 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -201,6 +201,9 @@ extern void post_alloc_hook(struct page *page, unsigned int order, > gfp_t gfp_flags); > extern int user_min_free_kbytes; > > +extern void free_unref_page(struct page *page); > +extern void free_unref_page_list(struct list_head *list); > + > extern void zone_pcp_update(struct zone *zone); > extern void zone_pcp_reset(struct zone *zone); > extern void zone_pcp_disable(struct zone *zone); > Reviewed-by: David Hildenbrand <david@redhat.com>
On Wed, Nov 25, 2020 at 03:46:55AM +0000, Matthew Wilcox (Oracle) wrote: > Code outside mm/ should not be calling free_unref_page(). Also > move free_unref_page_list(). > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Mike Rapoport <rppt@linux.ibm.com> > --- > include/linux/gfp.h | 2 -- > mm/internal.h | 3 +++ > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > index c603237e006c..6e479e9c48ce 100644 > --- a/include/linux/gfp.h > +++ b/include/linux/gfp.h > @@ -580,8 +580,6 @@ void * __meminit alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); > > extern void __free_pages(struct page *page, unsigned int order); > extern void free_pages(unsigned long addr, unsigned int order); > -extern void free_unref_page(struct page *page); > -extern void free_unref_page_list(struct list_head *list); > > struct page_frag_cache; > extern void __page_frag_cache_drain(struct page *page, unsigned int count); > diff --git a/mm/internal.h b/mm/internal.h > index 75ae680d0a2c..5864815947fe 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -201,6 +201,9 @@ extern void post_alloc_hook(struct page *page, unsigned int order, > gfp_t gfp_flags); > extern int user_min_free_kbytes; > > +extern void free_unref_page(struct page *page); > +extern void free_unref_page_list(struct list_head *list); > + > extern void zone_pcp_update(struct zone *zone); > extern void zone_pcp_reset(struct zone *zone); > extern void zone_pcp_disable(struct zone *zone); > -- > 2.29.2 >
On 11/25/20 4:46 AM, Matthew Wilcox (Oracle) wrote: > Code outside mm/ should not be calling free_unref_page(). Also > move free_unref_page_list(). Good idea. > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Acked-by: Vlastimil Babka <vbabka@suse.cz> There seems to be some effort to remove "extern" from function declarations from headers. Do we want to do that, at once, or piecemeal? If the latter, this is a chance for these functions at least :) > --- > include/linux/gfp.h | 2 -- > mm/internal.h | 3 +++ > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > index c603237e006c..6e479e9c48ce 100644 > --- a/include/linux/gfp.h > +++ b/include/linux/gfp.h > @@ -580,8 +580,6 @@ void * __meminit alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); > > extern void __free_pages(struct page *page, unsigned int order); > extern void free_pages(unsigned long addr, unsigned int order); > -extern void free_unref_page(struct page *page); > -extern void free_unref_page_list(struct list_head *list); > > struct page_frag_cache; > extern void __page_frag_cache_drain(struct page *page, unsigned int count); > diff --git a/mm/internal.h b/mm/internal.h > index 75ae680d0a2c..5864815947fe 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -201,6 +201,9 @@ extern void post_alloc_hook(struct page *page, unsigned int order, > gfp_t gfp_flags); > extern int user_min_free_kbytes; > > +extern void free_unref_page(struct page *page); > +extern void free_unref_page_list(struct list_head *list); > + > extern void zone_pcp_update(struct zone *zone); > extern void zone_pcp_reset(struct zone *zone); > extern void zone_pcp_disable(struct zone *zone); >
On Wed, Nov 25, 2020 at 01:34:04PM +0100, Vlastimil Babka wrote: > On 11/25/20 4:46 AM, Matthew Wilcox (Oracle) wrote: > > Code outside mm/ should not be calling free_unref_page(). Also > > move free_unref_page_list(). > > Good idea. > > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> > > Acked-by: Vlastimil Babka <vbabka@suse.cz> > > There seems to be some effort to remove "extern" from function declarations > from headers. Do we want to do that, at once, or piecemeal? If the latter, > this is a chance for these functions at least :) I'm generally in favour of those efforts, but since I was just moving the function declarations, and all the code near the destination was using 'extern', I decided not to remove it so as to avoid getting caught up in bikeshedding ...
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index c603237e006c..6e479e9c48ce 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -580,8 +580,6 @@ void * __meminit alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask); extern void __free_pages(struct page *page, unsigned int order); extern void free_pages(unsigned long addr, unsigned int order); -extern void free_unref_page(struct page *page); -extern void free_unref_page_list(struct list_head *list); struct page_frag_cache; extern void __page_frag_cache_drain(struct page *page, unsigned int count); diff --git a/mm/internal.h b/mm/internal.h index 75ae680d0a2c..5864815947fe 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -201,6 +201,9 @@ extern void post_alloc_hook(struct page *page, unsigned int order, gfp_t gfp_flags); extern int user_min_free_kbytes; +extern void free_unref_page(struct page *page); +extern void free_unref_page_list(struct list_head *list); + extern void zone_pcp_update(struct zone *zone); extern void zone_pcp_reset(struct zone *zone); extern void zone_pcp_disable(struct zone *zone);
Code outside mm/ should not be calling free_unref_page(). Also move free_unref_page_list(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- include/linux/gfp.h | 2 -- mm/internal.h | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-)