Skip to contentSkip to conversation

m68knommu: Correct page_to_phys when PAGE_OFFSET is non-zero.

PATCH In review Steven King 2 participants 2 messages Jun 12, 2014 – Jun 20, 2014 m68k architecture

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 m68knommu: Correct page_to_phys when PAGE_OFFSET is non-zero.

The definition of page_to_phys for nommu produces an incorrect value when PAGE_OFFSET is non-zero. The nommu version of page_to_pfn works correctly for non-zero PAGE_OFFSET, so use that instead.

---
 arch/m68k/include/asm/virtconvert.h |    6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
arch/m68k/include/asm/virtconvert.h +1 -5
index f35229b..b8a82fb 100644
@@ -26,16 +26,12 @@ static inline void *phys_to_virt(unsigned long address)
 }
 
 /* Permanent address of a page. */
-#ifdef CONFIG_MMU
-#ifdef CONFIG_SINGLE_MEMORY_CHUNK
+#if defined(CONFIG_MMU) && defined(CONFIG_SINGLE_MEMORY_CHUNK)
 #define page_to_phys(page) \
 	__pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT))
 #else
 #define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
 #endif
-#else
-#define page_to_phys(page)	(((page) - mem_map) << PAGE_SHIFT)
-#endif
 
 /*
  * IO bus memory addresses are 1:1 with the physical address,
#1 lore raw

Hi Steven,

Quoted 5 lines · Steven King

The definition of page_to_phys for nommu produces an incorrect value when PAGE_OFFSET is non-zero. The nommu version of page_to_pfn works correctly for non-zero PAGE_OFFSET, so use that instead.

Looks good, thanks. Applied to m68knommu git tree, for-next branch.

Regards
Greg

Quoted 27 lines
---
  arch/m68k/include/asm/virtconvert.h |    6 +-----
  1 file changed, 1 insertion(+), 5 deletions(-)
arch/m68k/include/asm/virtconvert.h +1 -5
index f35229b..b8a82fb 100644
@@ -26,16 +26,12 @@ static inline void *phys_to_virt(unsigned long address)
  }
 
  /* Permanent address of a page. */
-#ifdef CONFIG_MMU
-#ifdef CONFIG_SINGLE_MEMORY_CHUNK
+#if defined(CONFIG_MMU) && defined(CONFIG_SINGLE_MEMORY_CHUNK)
  #define page_to_phys(page) \
  	__pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT))
  #else
  #define page_to_phys(page)	(page_to_pfn(page) << PAGE_SHIFT)
  #endif
-#else
-#define page_to_phys(page)	(((page) - mem_map) << PAGE_SHIFT)
-#endif
 
  /*
   * IO bus memory addresses are 1:1 with the physical address,