m68knommu: Correct page_to_phys when PAGE_OFFSET is non-zero.
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.
Signed-off-by Steven King <[email protected]>
--- arch/m68k/include/asm/virtconvert.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
arch/m68k/include/asm/virtconvert.h +1 -5
@@ -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,
Hi Steven,
Quoted 5 lines · Steven King
The definition of
page_to_physfor nommu produces an incorrect value whenPAGE_OFFSETis non-zero. The nommu version ofpage_to_pfnworks correctly for non-zeroPAGE_OFFSET, so use that instead.Signed-off-by Steven King <[email protected]>
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@@ -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,