Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1608434 > unrolled thread

[PATCH] drivers: base: dma-mapping: use nth_page helper

Started byGeliang Tang <geliangtang@gmail.com>
First post2017-03-24 15:20 +0100
Last post2017-03-24 18:50 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] drivers: base: dma-mapping: use nth_page helper Geliang Tang <geliangtang@gmail.com> - 2017-03-24 15:20 +0100
    [PATCH] mm/page_alloc: use nth_page helper Geliang Tang <geliangtang@gmail.com> - 2017-03-24 15:20 +0100
      Re: [PATCH] mm/page_alloc: use nth_page helper Vlastimil Babka <vbabka@suse.cz> - 2017-03-24 18:50 +0100

#1608434 — [PATCH] drivers: base: dma-mapping: use nth_page helper

FromGeliang Tang <geliangtang@gmail.com>
Date2017-03-24 15:20 +0100
Subject[PATCH] drivers: base: dma-mapping: use nth_page helper
Message-ID<toyel-2LK-11@gated-at.bofh.it>
Use nth_page() helper instead of page_to_pfn() and pfn_to_page() to
simplify the code.

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
---
 drivers/base/dma-mapping.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c
index efd71cf..51b7061 100644
--- a/drivers/base/dma-mapping.c
+++ b/drivers/base/dma-mapping.c
@@ -309,14 +309,13 @@ void *dma_common_contiguous_remap(struct page *page, size_t size,
 	int i;
 	struct page **pages;
 	void *ptr;
-	unsigned long pfn;
 
 	pages = kmalloc(sizeof(struct page *) << get_order(size), GFP_KERNEL);
 	if (!pages)
 		return NULL;
 
-	for (i = 0, pfn = page_to_pfn(page); i < (size >> PAGE_SHIFT); i++)
-		pages[i] = pfn_to_page(pfn + i);
+	for (i = 0; i < (size >> PAGE_SHIFT); i++)
+		pages[i] = nth_page(page, i);
 
 	ptr = dma_common_pages_remap(pages, size, vm_flags, prot, caller);
 
-- 
2.9.3

[toc] | [next] | [standalone]


#1608445 — [PATCH] mm/page_alloc: use nth_page helper

FromGeliang Tang <geliangtang@gmail.com>
Date2017-03-24 15:20 +0100
Subject[PATCH] mm/page_alloc: use nth_page helper
Message-ID<toyem-2LK-39@gated-at.bofh.it>
In reply to#1608434
Use nth_page() helper instead of page_to_pfn() and pfn_to_page() to
simplify the code.

Signed-off-by: Geliang Tang <geliangtang@gmail.com>
---
 mm/page_alloc.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index f749b7f..3354f56 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2511,9 +2511,8 @@ void mark_free_pages(struct zone *zone)
 				&zone->free_area[order].free_list[t], lru) {
 			unsigned long i;
 
-			pfn = page_to_pfn(page);
 			for (i = 0; i < (1UL << order); i++)
-				swsusp_set_page_free(pfn_to_page(pfn + i));
+				swsusp_set_page_free(nth_page(page, i));
 		}
 	}
 	spin_unlock_irqrestore(&zone->lock, flags);
-- 
2.9.3

[toc] | [prev] | [next] | [standalone]


#1608726 — Re: [PATCH] mm/page_alloc: use nth_page helper

FromVlastimil Babka <vbabka@suse.cz>
Date2017-03-24 18:50 +0100
SubjectRe: [PATCH] mm/page_alloc: use nth_page helper
Message-ID<toBvA-4Xj-21@gated-at.bofh.it>
In reply to#1608445
On 24.3.2017 15:10, Geliang Tang wrote:
> Use nth_page() helper instead of page_to_pfn() and pfn_to_page() to
> simplify the code.

Well I've never heard of this helper so I would have to look it up to see what
it does. Looks like there's not many users.
Anyway it's simpler to use just "page + i" if within MAX_ORDER_NR_PAGES, which
should be the case here. That can also actually save a few cycles. Otherwise it
looks like a pointless churn to me.

> Signed-off-by: Geliang Tang <geliangtang@gmail.com>
> ---
>  mm/page_alloc.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index f749b7f..3354f56 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2511,9 +2511,8 @@ void mark_free_pages(struct zone *zone)
>  				&zone->free_area[order].free_list[t], lru) {
>  			unsigned long i;
>  
> -			pfn = page_to_pfn(page);
>  			for (i = 0; i < (1UL << order); i++)
> -				swsusp_set_page_free(pfn_to_page(pfn + i));
> +				swsusp_set_page_free(nth_page(page, i));
>  		}
>  	}
>  	spin_unlock_irqrestore(&zone->lock, flags);
> 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web