public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [RFC][PATCH] unify pfn_to_page [2/25] alpha page_to_pfn / pfn_to_page
Date: Mon, 06 Feb 2006 19:49:15 +0900	[thread overview]
Message-ID: <43E729AB.7090201@jp.fujitsu.com> (raw)

drop alpha's page_to_pfn/pfn_to_page().

When Discontigmem :
Original pfn_to_page looks complicated. it used
pa_to_nid(__pa(__va(pfn << PAGE_SHIFT))),but it is same to pfn_to_nid(pfn).

local_mapnr(__va((pfn) << PAGE_SHIFT) was
__pa (__va(pfn) << PAGE_SHIFT)) >> PAGE_SHIFT - NODE_DATA(nid)->node_start_pfn.
but it is equivalent to  pfn - NODE_DATA(nid)->node_start_pfn.

Alpha seems to be able to use generic ones.
Signed-Off-By: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

Index: cleanup_pfn_page/include/asm-alpha/mmzone.h
===================================================================
--- cleanup_pfn_page.orig/include/asm-alpha/mmzone.h
+++ cleanup_pfn_page/include/asm-alpha/mmzone.h
@@ -59,8 +59,6 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p,
  #define kvaddr_to_nid(kaddr)	pa_to_nid(__pa(kaddr))
  #define node_start_pfn(nid)	(NODE_DATA(nid)->node_start_pfn)

-#define local_mapnr(kvaddr) \
-      ((__pa(kvaddr) >> PAGE_SHIFT) - node_start_pfn(kvaddr_to_nid(kvaddr)))

  /*
   * Given a kaddr, LOCAL_BASE_ADDR finds the owning node of the memory
@@ -104,15 +102,6 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p,
  	__xx;                                                           \
  })

-#define pfn_to_page(pfn)						\
-({									\
- 	unsigned long kaddr = (unsigned long)__va((pfn) << PAGE_SHIFT);	\
-	(NODE_DATA(kvaddr_to_nid(kaddr))->node_mem_map + local_mapnr(kaddr));	\
-})
-
-#define page_to_pfn(page)						\
-	((page) - page_zone(page)->zone_mem_map +			\
-	 (page_zone(page)->zone_start_pfn))

  #define page_to_pa(page)						\
  	((( (page) - page_zone(page)->zone_mem_map )			\
@@ -125,6 +114,9 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p,

  #define virt_addr_valid(kaddr)	pfn_valid((__pa(kaddr) >> PAGE_SHIFT))

+
+#define arch_pfn_to_nid(pfn)	pfn_to_nid(pfn)
+
  #endif /* CONFIG_DISCONTIGMEM */

  #endif /* _ASM_MMZONE_H_ */
Index: cleanup_pfn_page/include/asm-alpha/page.h
===================================================================
--- cleanup_pfn_page.orig/include/asm-alpha/page.h
+++ cleanup_pfn_page/include/asm-alpha/page.h
@@ -85,8 +85,6 @@ typedef unsigned long pgprot_t;
  #define __pa(x)			((unsigned long) (x) - PAGE_OFFSET)
  #define __va(x)			((void *)((unsigned long) (x) + PAGE_OFFSET))
  #ifndef CONFIG_DISCONTIGMEM
-#define pfn_to_page(pfn)	(mem_map + (pfn))
-#define page_to_pfn(page)	((unsigned long)((page) - mem_map))
  #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)

  #define pfn_valid(pfn)		((pfn) < max_mapnr)


                 reply	other threads:[~2006-02-06 10:48 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=43E729AB.7090201@jp.fujitsu.com \
    --to=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox