diff mbox

[01/15] avr32: convert to asm-generic/memory_model.h

Message ID 20150923044118.36490.75919.stgit@dwillia2-desk3.jf.intel.com (mailing list archive)
State Accepted
Commit 083fc21409ca
Headers show

Commit Message

Dan Williams Sept. 23, 2015, 4:41 a.m. UTC
Switch avr32/include/asm/page.h to use the common defintions for
pfn_to_page(), page_to_pfn(), and ARCH_PFN_OFFSET.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 arch/avr32/include/asm/page.h |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Christoph Hellwig Sept. 24, 2015, 3:10 p.m. UTC | #1
On Wed, Sep 23, 2015 at 12:41:18AM -0400, Dan Williams wrote:
> Switch avr32/include/asm/page.h to use the common defintions for
> pfn_to_page(), page_to_pfn(), and ARCH_PFN_OFFSET.

This was the last architecture not using asm-generic/memory_model.h,
so it might be time to move it to linux/ or even fold it into an
existing header.
Dan Williams Sept. 26, 2015, 12:36 a.m. UTC | #2
On Thu, Sep 24, 2015 at 8:10 AM, Christoph Hellwig <hch@infradead.org> wrote:
> On Wed, Sep 23, 2015 at 12:41:18AM -0400, Dan Williams wrote:
>> Switch avr32/include/asm/page.h to use the common defintions for
>> pfn_to_page(), page_to_pfn(), and ARCH_PFN_OFFSET.
>
> This was the last architecture not using asm-generic/memory_model.h,
> so it might be time to move it to linux/ or even fold it into an
> existing header.

I went to go attempt this, but ia64 is still a holdout, as its
DISCONTIGMEM setup can't use the generic memory_model definitions.

#ifdef CONFIG_DISCONTIGMEM
# define page_to_pfn(page)      ((unsigned long) (page - vmem_map))
# define pfn_to_page(pfn)       (vmem_map + (pfn))
#else
# include <asm-generic/memory_model.h>
#endif
#else
# include <asm-generic/memory_model.h>
#endif
Christoph Hellwig Sept. 26, 2015, 8:10 p.m. UTC | #3
On Fri, Sep 25, 2015 at 05:36:36PM -0700, Dan Williams wrote:
> I went to go attempt this, but ia64 is still a holdout, as its
> DISCONTIGMEM setup can't use the generic memory_model definitions.
> 
> #ifdef CONFIG_DISCONTIGMEM
> # define page_to_pfn(page)      ((unsigned long) (page - vmem_map))
> # define pfn_to_page(pfn)       (vmem_map + (pfn))
> #else
> # include <asm-generic/memory_model.h>
> #endif
> #else
> # include <asm-generic/memory_model.h>
> #endif

Seems like we should simply introduce a CONFIG_VMEM_MAP for ia64
to get this started.  Does my memory trick me or did we used to have
vmem_map on other architectures as well but managed to get rid of it
everywhere but on ia64?
Tony Luck Sept. 28, 2015, 6:44 p.m. UTC | #4
> Seems like we should simply introduce a CONFIG_VMEM_MAP for ia64
> to get this started.  Does my memory trick me or did we used to have
> vmem_map on other architectures as well but managed to get rid of it
> everywhere but on ia64?

I think ia64 hung onto this because of the SGI sn1 platforms. They were
even more discontiguous than even SPARSEMEM_EXTREME could handle

-Tony
diff mbox

Patch

diff --git a/arch/avr32/include/asm/page.h b/arch/avr32/include/asm/page.h
index f805d1cb11bc..c5d2a3e2c62f 100644
--- a/arch/avr32/include/asm/page.h
+++ b/arch/avr32/include/asm/page.h
@@ -83,11 +83,9 @@  static inline int get_order(unsigned long size)
 
 #ifndef CONFIG_NEED_MULTIPLE_NODES
 
-#define PHYS_PFN_OFFSET		(CONFIG_PHYS_OFFSET >> PAGE_SHIFT)
+#define ARCH_PFN_OFFSET		(CONFIG_PHYS_OFFSET >> PAGE_SHIFT)
 
-#define pfn_to_page(pfn)	(mem_map + ((pfn) - PHYS_PFN_OFFSET))
-#define page_to_pfn(page)	((unsigned long)((page) - mem_map) + PHYS_PFN_OFFSET)
-#define pfn_valid(pfn)		((pfn) >= PHYS_PFN_OFFSET && (pfn) < (PHYS_PFN_OFFSET + max_mapnr))
+#define pfn_valid(pfn)		((pfn) >= ARCH_PFN_OFFSET && (pfn) < (ARCH_PFN_OFFSET + max_mapnr))
 #endif /* CONFIG_NEED_MULTIPLE_NODES */
 
 #define virt_to_page(kaddr)	pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
@@ -101,4 +99,6 @@  static inline int get_order(unsigned long size)
  */
 #define HIGHMEM_START		0x20000000UL
 
+#include <asm-generic/memory_model.h>
+
 #endif /* __ASM_AVR32_PAGE_H */