linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/2] mm: simplify free_highmem_page() and free_reserved_page()
@ 2021-01-26 18:21 David Hildenbrand
  2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
  2021-01-26 18:21 ` [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
  0 siblings, 2 replies; 9+ messages in thread
From: David Hildenbrand @ 2021-01-26 18:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linux-fbdev, dri-devel, David Hildenbrand,
	Andrew Morton, Gustavo A. R. Silva, Michal Hocko, Mike Rapoport,
	Oscar Salvador, Peter Zijlstra (Intel),
	Sam Ravnborg, Thomas Gleixner, Wei Yang

Let's simplify and unify free_highmem_page() and free_reserved_page().

Gave it a quick test in i386 QEMU with 4G of RAM - seems to work just fine.

David Hildenbrand (2):
  video: fbdev: acornfb: remove free_unused_pages()
  mm: simplify free_highmem_page() and free_reserved_page()

 drivers/video/fbdev/acornfb.c    | 34 --------------------------------
 include/linux/highmem-internal.h |  5 -----
 include/linux/mm.h               | 16 ++-------------
 mm/page_alloc.c                  | 11 -----------
 4 files changed, 2 insertions(+), 64 deletions(-)

-- 
2.29.2


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages()
  2021-01-26 18:21 [PATCH v1 0/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
@ 2021-01-26 18:21 ` David Hildenbrand
  2021-01-27  8:44   ` Geert Uytterhoeven
                     ` (2 more replies)
  2021-01-26 18:21 ` [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
  1 sibling, 3 replies; 9+ messages in thread
From: David Hildenbrand @ 2021-01-26 18:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linux-fbdev, dri-devel, David Hildenbrand,
	Andrew Morton, Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Oscar Salvador, Michal Hocko, Wei Yang,
	Gustavo A. R. Silva, Sam Ravnborg

This function is never used and it is one of the last remaining user of
__free_reserved_page(). Let's just drop it.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 drivers/video/fbdev/acornfb.c | 34 ----------------------------------
 1 file changed, 34 deletions(-)

diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
index bcc92aecf666..1b72edc01cfb 100644
--- a/drivers/video/fbdev/acornfb.c
+++ b/drivers/video/fbdev/acornfb.c
@@ -921,40 +921,6 @@ static int acornfb_detect_monitortype(void)
 	return 4;
 }
 
-/*
- * This enables the unused memory to be freed on older Acorn machines.
- * We are freeing memory on behalf of the architecture initialisation
- * code here.
- */
-static inline void
-free_unused_pages(unsigned int virtual_start, unsigned int virtual_end)
-{
-	int mb_freed = 0;
-
-	/*
-	 * Align addresses
-	 */
-	virtual_start = PAGE_ALIGN(virtual_start);
-	virtual_end = PAGE_ALIGN(virtual_end);
-
-	while (virtual_start < virtual_end) {
-		struct page *page;
-
-		/*
-		 * Clear page reserved bit,
-		 * set count to 1, and free
-		 * the page.
-		 */
-		page = virt_to_page(virtual_start);
-		__free_reserved_page(page);
-
-		virtual_start += PAGE_SIZE;
-		mb_freed += PAGE_SIZE / 1024;
-	}
-
-	printk("acornfb: freed %dK memory\n", mb_freed);
-}
-
 static int acornfb_probe(struct platform_device *dev)
 {
 	unsigned long size;
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page()
  2021-01-26 18:21 [PATCH v1 0/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
  2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
@ 2021-01-26 18:21 ` David Hildenbrand
  2021-01-27 11:51   ` Oscar Salvador
  2021-01-28  4:12   ` Anshuman Khandual
  1 sibling, 2 replies; 9+ messages in thread
From: David Hildenbrand @ 2021-01-26 18:21 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-mm, linux-fbdev, dri-devel, David Hildenbrand,
	Andrew Morton, Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Oscar Salvador, Michal Hocko, Wei Yang

adjust_managed_page_count() as called by free_reserved_page() properly
handles pages in a highmem zone, so we can reuse it for
free_highmem_page().

We can now get rid of totalhigh_pages_inc() and simplify
free_reserved_page().

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/highmem-internal.h |  5 -----
 include/linux/mm.h               | 16 ++--------------
 mm/page_alloc.c                  | 11 -----------
 3 files changed, 2 insertions(+), 30 deletions(-)

diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h
index 1bbe96dc8be6..7902c7d8b55f 100644
--- a/include/linux/highmem-internal.h
+++ b/include/linux/highmem-internal.h
@@ -127,11 +127,6 @@ static inline unsigned long totalhigh_pages(void)
 	return (unsigned long)atomic_long_read(&_totalhigh_pages);
 }
 
-static inline void totalhigh_pages_inc(void)
-{
-	atomic_long_inc(&_totalhigh_pages);
-}
-
 static inline void totalhigh_pages_add(long count)
 {
 	atomic_long_add(count, &_totalhigh_pages);
diff --git a/include/linux/mm.h b/include/linux/mm.h
index a5d618d08506..494c69433a34 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2303,32 +2303,20 @@ extern void free_initmem(void);
 extern unsigned long free_reserved_area(void *start, void *end,
 					int poison, const char *s);
 
-#ifdef	CONFIG_HIGHMEM
-/*
- * Free a highmem page into the buddy system, adjusting totalhigh_pages
- * and totalram_pages.
- */
-extern void free_highmem_page(struct page *page);
-#endif
-
 extern void adjust_managed_page_count(struct page *page, long count);
 extern void mem_init_print_info(const char *str);
 
 extern void reserve_bootmem_region(phys_addr_t start, phys_addr_t end);
 
 /* Free the reserved page into the buddy system, so it gets managed. */
-static inline void __free_reserved_page(struct page *page)
+static inline void free_reserved_page(struct page *page)
 {
 	ClearPageReserved(page);
 	init_page_count(page);
 	__free_page(page);
-}
-
-static inline void free_reserved_page(struct page *page)
-{
-	__free_reserved_page(page);
 	adjust_managed_page_count(page, 1);
 }
+#define free_highmem_page(page) free_reserved_page(page)
 
 static inline void mark_page_reserved(struct page *page)
 {
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index b031a5ae0bd5..b2e42f10d4d4 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7711,17 +7711,6 @@ unsigned long free_reserved_area(void *start, void *end, int poison, const char
 	return pages;
 }
 
-#ifdef	CONFIG_HIGHMEM
-void free_highmem_page(struct page *page)
-{
-	__free_reserved_page(page);
-	totalram_pages_inc();
-	atomic_long_inc(&page_zone(page)->managed_pages);
-	totalhigh_pages_inc();
-}
-#endif
-
-
 void __init mem_init_print_info(const char *str)
 {
 	unsigned long physpages, codesize, datasize, rosize, bss_size;
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages()
  2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
@ 2021-01-27  8:44   ` Geert Uytterhoeven
  2021-01-27 11:53   ` Oscar Salvador
  2021-01-28  3:54   ` Anshuman Khandual
  2 siblings, 0 replies; 9+ messages in thread
From: Geert Uytterhoeven @ 2021-01-27  8:44 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: Linux Kernel Mailing List, Linux MM,
	Linux Fbdev development list, DRI Development, Andrew Morton,
	Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Oscar Salvador, Michal Hocko, Wei Yang,
	Gustavo A. R. Silva, Sam Ravnborg

On Tue, Jan 26, 2021 at 11:54 PM David Hildenbrand <david@redhat.com> wrote:
> This function is never used and it is one of the last remaining user of
> __free_reserved_page(). Let's just drop it.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@kernel.org>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Fixes: ffd29195ed720188 ("drivers/video/acornfb.c: remove dead code")

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page()
  2021-01-26 18:21 ` [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
@ 2021-01-27 11:51   ` Oscar Salvador
  2021-01-27 12:24     ` David Hildenbrand
  2021-01-28  4:12   ` Anshuman Khandual
  1 sibling, 1 reply; 9+ messages in thread
From: Oscar Salvador @ 2021-01-27 11:51 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: linux-kernel, linux-mm, linux-fbdev, dri-devel, Andrew Morton,
	Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Michal Hocko, Wei Yang

On Tue, Jan 26, 2021 at 07:21:13PM +0100, David Hildenbrand wrote:
> adjust_managed_page_count() as called by free_reserved_page() properly
> handles pages in a highmem zone, so we can reuse it for
> free_highmem_page().
> 
> We can now get rid of totalhigh_pages_inc() and simplify
> free_reserved_page().
> 
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@kernel.org>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Reviewed-by: Oscar Salvador <osalvador@suse.de>

> +#define free_highmem_page(page) free_reserved_page(page)

Should we place that under #ifdef CONFIG_HIGHMEM to make clear
that it is only used on that config?
Maybe the #ifdefery ugliness does not pay off.

-- 
Oscar Salvador
SUSE L3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages()
  2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
  2021-01-27  8:44   ` Geert Uytterhoeven
@ 2021-01-27 11:53   ` Oscar Salvador
  2021-01-28  3:54   ` Anshuman Khandual
  2 siblings, 0 replies; 9+ messages in thread
From: Oscar Salvador @ 2021-01-27 11:53 UTC (permalink / raw)
  To: David Hildenbrand
  Cc: linux-kernel, linux-mm, linux-fbdev, dri-devel, Andrew Morton,
	Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Michal Hocko, Wei Yang, Gustavo A. R. Silva,
	Sam Ravnborg

On Tue, Jan 26, 2021 at 07:21:12PM +0100, David Hildenbrand wrote:
> This function is never used and it is one of the last remaining user of
> __free_reserved_page(). Let's just drop it.
> 
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@kernel.org>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Reviewed-by: Oscar Salvador <osalvador@suse.de>

> ---
>  drivers/video/fbdev/acornfb.c | 34 ----------------------------------
>  1 file changed, 34 deletions(-)
> 
> diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
> index bcc92aecf666..1b72edc01cfb 100644
> --- a/drivers/video/fbdev/acornfb.c
> +++ b/drivers/video/fbdev/acornfb.c
> @@ -921,40 +921,6 @@ static int acornfb_detect_monitortype(void)
>  	return 4;
>  }
>  
> -/*
> - * This enables the unused memory to be freed on older Acorn machines.
> - * We are freeing memory on behalf of the architecture initialisation
> - * code here.
> - */
> -static inline void
> -free_unused_pages(unsigned int virtual_start, unsigned int virtual_end)
> -{
> -	int mb_freed = 0;
> -
> -	/*
> -	 * Align addresses
> -	 */
> -	virtual_start = PAGE_ALIGN(virtual_start);
> -	virtual_end = PAGE_ALIGN(virtual_end);
> -
> -	while (virtual_start < virtual_end) {
> -		struct page *page;
> -
> -		/*
> -		 * Clear page reserved bit,
> -		 * set count to 1, and free
> -		 * the page.
> -		 */
> -		page = virt_to_page(virtual_start);
> -		__free_reserved_page(page);
> -
> -		virtual_start += PAGE_SIZE;
> -		mb_freed += PAGE_SIZE / 1024;
> -	}
> -
> -	printk("acornfb: freed %dK memory\n", mb_freed);
> -}
> -
>  static int acornfb_probe(struct platform_device *dev)
>  {
>  	unsigned long size;
> -- 
> 2.29.2
> 

-- 
Oscar Salvador
SUSE L3

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page()
  2021-01-27 11:51   ` Oscar Salvador
@ 2021-01-27 12:24     ` David Hildenbrand
  0 siblings, 0 replies; 9+ messages in thread
From: David Hildenbrand @ 2021-01-27 12:24 UTC (permalink / raw)
  To: Oscar Salvador
  Cc: linux-kernel, linux-mm, linux-fbdev, dri-devel, Andrew Morton,
	Thomas Gleixner, Peter Zijlstra (Intel),
	Mike Rapoport, Michal Hocko, Wei Yang

On 27.01.21 12:51, Oscar Salvador wrote:
> On Tue, Jan 26, 2021 at 07:21:13PM +0100, David Hildenbrand wrote:
>> adjust_managed_page_count() as called by free_reserved_page() properly
>> handles pages in a highmem zone, so we can reuse it for
>> free_highmem_page().
>>
>> We can now get rid of totalhigh_pages_inc() and simplify
>> free_reserved_page().
>>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Thomas Gleixner <tglx@linutronix.de>
>> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
>> Cc: Mike Rapoport <rppt@kernel.org>
>> Cc: Oscar Salvador <osalvador@suse.de>
>> Cc: Michal Hocko <mhocko@kernel.org>
>> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
>> Signed-off-by: David Hildenbrand <david@redhat.com>
> 
> Reviewed-by: Oscar Salvador <osalvador@suse.de>
> 
>> +#define free_highmem_page(page) free_reserved_page(page)
> 
> Should we place that under #ifdef CONFIG_HIGHMEM to make clear
> that it is only used on that config?
> Maybe the #ifdefery ugliness does not pay off.

Yeah, most probably not worth it.

-- 
Thanks,

David / dhildenb


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages()
  2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
  2021-01-27  8:44   ` Geert Uytterhoeven
  2021-01-27 11:53   ` Oscar Salvador
@ 2021-01-28  3:54   ` Anshuman Khandual
  2 siblings, 0 replies; 9+ messages in thread
From: Anshuman Khandual @ 2021-01-28  3:54 UTC (permalink / raw)
  To: David Hildenbrand, linux-kernel
  Cc: linux-mm, linux-fbdev, dri-devel, Andrew Morton, Thomas Gleixner,
	Peter Zijlstra (Intel),
	Mike Rapoport, Oscar Salvador, Michal Hocko, Wei Yang,
	Gustavo A. R. Silva, Sam Ravnborg



On 1/26/21 11:51 PM, David Hildenbrand wrote:
> This function is never used and it is one of the last remaining user of
> __free_reserved_page(). Let's just drop it.
> 
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@kernel.org>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Signed-off-by: David Hildenbrand <david@redhat.com>

There is no other reference for free_unused_pages() in the tree.

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

> ---
>  drivers/video/fbdev/acornfb.c | 34 ----------------------------------
>  1 file changed, 34 deletions(-)
> 
> diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
> index bcc92aecf666..1b72edc01cfb 100644
> --- a/drivers/video/fbdev/acornfb.c
> +++ b/drivers/video/fbdev/acornfb.c
> @@ -921,40 +921,6 @@ static int acornfb_detect_monitortype(void)
>  	return 4;
>  }
>  
> -/*
> - * This enables the unused memory to be freed on older Acorn machines.
> - * We are freeing memory on behalf of the architecture initialisation
> - * code here.
> - */
> -static inline void
> -free_unused_pages(unsigned int virtual_start, unsigned int virtual_end)
> -{
> -	int mb_freed = 0;
> -
> -	/*
> -	 * Align addresses
> -	 */
> -	virtual_start = PAGE_ALIGN(virtual_start);
> -	virtual_end = PAGE_ALIGN(virtual_end);
> -
> -	while (virtual_start < virtual_end) {
> -		struct page *page;
> -
> -		/*
> -		 * Clear page reserved bit,
> -		 * set count to 1, and free
> -		 * the page.
> -		 */
> -		page = virt_to_page(virtual_start);
> -		__free_reserved_page(page);
> -
> -		virtual_start += PAGE_SIZE;
> -		mb_freed += PAGE_SIZE / 1024;
> -	}
> -
> -	printk("acornfb: freed %dK memory\n", mb_freed);
> -}
> -
>  static int acornfb_probe(struct platform_device *dev)
>  {
>  	unsigned long size;
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page()
  2021-01-26 18:21 ` [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
  2021-01-27 11:51   ` Oscar Salvador
@ 2021-01-28  4:12   ` Anshuman Khandual
  1 sibling, 0 replies; 9+ messages in thread
From: Anshuman Khandual @ 2021-01-28  4:12 UTC (permalink / raw)
  To: David Hildenbrand, linux-kernel
  Cc: linux-mm, linux-fbdev, dri-devel, Andrew Morton, Thomas Gleixner,
	Peter Zijlstra (Intel),
	Mike Rapoport, Oscar Salvador, Michal Hocko, Wei Yang



On 1/26/21 11:51 PM, David Hildenbrand wrote:
> adjust_managed_page_count() as called by free_reserved_page() properly
> handles pages in a highmem zone, so we can reuse it for
> free_highmem_page().
> 
> We can now get rid of totalhigh_pages_inc() and simplify
> free_reserved_page().
> 
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
> Cc: Mike Rapoport <rppt@kernel.org>
> Cc: Oscar Salvador <osalvador@suse.de>
> Cc: Michal Hocko <mhocko@kernel.org>
> Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
> Signed-off-by: David Hildenbrand <david@redhat.com>

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

> ---
>  include/linux/highmem-internal.h |  5 -----
>  include/linux/mm.h               | 16 ++--------------
>  mm/page_alloc.c                  | 11 -----------
>  3 files changed, 2 insertions(+), 30 deletions(-)
> 
> diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h
> index 1bbe96dc8be6..7902c7d8b55f 100644
> --- a/include/linux/highmem-internal.h
> +++ b/include/linux/highmem-internal.h
> @@ -127,11 +127,6 @@ static inline unsigned long totalhigh_pages(void)
>  	return (unsigned long)atomic_long_read(&_totalhigh_pages);
>  }
>  
> -static inline void totalhigh_pages_inc(void)
> -{
> -	atomic_long_inc(&_totalhigh_pages);
> -}
> -
>  static inline void totalhigh_pages_add(long count)
>  {
>  	atomic_long_add(count, &_totalhigh_pages);
> diff --git a/include/linux/mm.h b/include/linux/mm.h
> index a5d618d08506..494c69433a34 100644
> --- a/include/linux/mm.h
> +++ b/include/linux/mm.h
> @@ -2303,32 +2303,20 @@ extern void free_initmem(void);
>  extern unsigned long free_reserved_area(void *start, void *end,
>  					int poison, const char *s);
>  
> -#ifdef	CONFIG_HIGHMEM
> -/*
> - * Free a highmem page into the buddy system, adjusting totalhigh_pages
> - * and totalram_pages.
> - */
> -extern void free_highmem_page(struct page *page);
> -#endif
> -
>  extern void adjust_managed_page_count(struct page *page, long count);
>  extern void mem_init_print_info(const char *str);
>  
>  extern void reserve_bootmem_region(phys_addr_t start, phys_addr_t end);
>  
>  /* Free the reserved page into the buddy system, so it gets managed. */
> -static inline void __free_reserved_page(struct page *page)
> +static inline void free_reserved_page(struct page *page)
>  {
>  	ClearPageReserved(page);
>  	init_page_count(page);
>  	__free_page(page);
> -}
> -
> -static inline void free_reserved_page(struct page *page)
> -{
> -	__free_reserved_page(page);
>  	adjust_managed_page_count(page, 1);
>  }
> +#define free_highmem_page(page) free_reserved_page(page)
>  
>  static inline void mark_page_reserved(struct page *page)
>  {
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index b031a5ae0bd5..b2e42f10d4d4 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -7711,17 +7711,6 @@ unsigned long free_reserved_area(void *start, void *end, int poison, const char
>  	return pages;
>  }
>  
> -#ifdef	CONFIG_HIGHMEM
> -void free_highmem_page(struct page *page)
> -{
> -	__free_reserved_page(page);
> -	totalram_pages_inc();
> -	atomic_long_inc(&page_zone(page)->managed_pages);
> -	totalhigh_pages_inc();
> -}
> -#endif
> -
> -
>  void __init mem_init_print_info(const char *str)
>  {
>  	unsigned long physpages, codesize, datasize, rosize, bss_size;
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-01-28  4:13 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-26 18:21 [PATCH v1 0/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
2021-01-26 18:21 ` [PATCH v1 1/2] video: fbdev: acornfb: remove free_unused_pages() David Hildenbrand
2021-01-27  8:44   ` Geert Uytterhoeven
2021-01-27 11:53   ` Oscar Salvador
2021-01-28  3:54   ` Anshuman Khandual
2021-01-26 18:21 ` [PATCH v1 2/2] mm: simplify free_highmem_page() and free_reserved_page() David Hildenbrand
2021-01-27 11:51   ` Oscar Salvador
2021-01-27 12:24     ` David Hildenbrand
2021-01-28  4:12   ` Anshuman Khandual

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).