diff options
| author | Greg Ungerer <gerg@uclinux.org> | 2010-01-12 19:42:05 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-12 23:51:45 -0500 |
| commit | 682137f7e6bc78e3c324874c0c213123ddc5e261 (patch) | |
| tree | dc7abee5b6ac11bb3819f6e8432566651998afe6 | |
| parent | 066000dd856709b6980123eb39b957fe26993f7b (diff) | |
m68knommu: fix definitions of __pa() and __va()
Fix compilation breakage of all m68knommu targets:
CC arch/m68knommu/kernel/asm-offsets.s
In file included from include/linux/sched.h:77,
from arch/m68knommu/kernel/asm-offsets.c:12:
include/linux/percpu.h: In function 'per_cpu_ptr_to_phys':
include/linux/percpu.h:161: error: implicit declaration of function 'virt_to_phy
This is broken in linux-2.6.33-rc3.
Change the definitions of __pa() and __va() to not use virt_to_phys()
and phys_to_virt(). Trivial 1:1 conversion required for the non-MMU case.
A side effect if this is that the m68knommu can now use asm/virtconvert.h
for the definition of virt_to_phys() and phys_to_virt().
Also cleaned up the definition of page_to_phys() when moving into
virtconvert.h.
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/m68k/include/asm/io_no.h | 14 | ||||
| -rw-r--r-- | arch/m68k/include/asm/page_no.h | 4 | ||||
| -rw-r--r-- | arch/m68k/include/asm/virtconvert.h | 4 |
3 files changed, 7 insertions, 15 deletions
diff --git a/arch/m68k/include/asm/io_no.h b/arch/m68k/include/asm/io_no.h index 7f57436ec18f..359065d5a9f2 100644 --- a/arch/m68k/include/asm/io_no.h +++ b/arch/m68k/include/asm/io_no.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
| 5 | 5 | ||
| 6 | #include <asm/virtconvert.h> | ||
| 6 | 7 | ||
| 7 | /* | 8 | /* |
| 8 | * These are for ISA/PCI shared memory _only_ and should never be used | 9 | * These are for ISA/PCI shared memory _only_ and should never be used |
| @@ -165,19 +166,6 @@ static inline void *ioremap_fullcache(unsigned long physaddr, unsigned long size | |||
| 165 | 166 | ||
| 166 | extern void iounmap(void *addr); | 167 | extern void iounmap(void *addr); |
| 167 | 168 | ||
| 168 | /* Pages to physical address... */ | ||
| 169 | #define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT) | ||
| 170 | #define page_to_bus(page) ((page - mem_map) << PAGE_SHIFT) | ||
| 171 | |||
| 172 | /* | ||
| 173 | * Macros used for converting between virtual and physical mappings. | ||
| 174 | */ | ||
| 175 | #define phys_to_virt(vaddr) ((void *) (vaddr)) | ||
| 176 | #define virt_to_phys(vaddr) ((unsigned long) (vaddr)) | ||
| 177 | |||
| 178 | #define virt_to_bus virt_to_phys | ||
| 179 | #define bus_to_virt phys_to_virt | ||
| 180 | |||
| 181 | /* | 169 | /* |
| 182 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 170 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
| 183 | * access | 171 | * access |
diff --git a/arch/m68k/include/asm/page_no.h b/arch/m68k/include/asm/page_no.h index 1f31b060cc8d..8029a33e03c3 100644 --- a/arch/m68k/include/asm/page_no.h +++ b/arch/m68k/include/asm/page_no.h | |||
| @@ -56,8 +56,8 @@ extern unsigned long memory_end; | |||
| 56 | 56 | ||
| 57 | #ifndef __ASSEMBLY__ | 57 | #ifndef __ASSEMBLY__ |
| 58 | 58 | ||
| 59 | #define __pa(vaddr) virt_to_phys((void *)(vaddr)) | 59 | #define __pa(vaddr) ((unsigned long)(vaddr)) |
| 60 | #define __va(paddr) phys_to_virt((unsigned long)(paddr)) | 60 | #define __va(paddr) ((void *)(paddr)) |
| 61 | 61 | ||
| 62 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) | 62 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) |
| 63 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) | 63 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) |
diff --git a/arch/m68k/include/asm/virtconvert.h b/arch/m68k/include/asm/virtconvert.h index 22ab05c9c52b..3f834b3ab5bd 100644 --- a/arch/m68k/include/asm/virtconvert.h +++ b/arch/m68k/include/asm/virtconvert.h | |||
| @@ -26,6 +26,7 @@ static inline void *phys_to_virt(unsigned long address) | |||
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | /* Permanent address of a page. */ | 28 | /* Permanent address of a page. */ |
| 29 | #ifdef CONFIG_MMU | ||
| 29 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | 30 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK |
| 30 | #define page_to_phys(page) \ | 31 | #define page_to_phys(page) \ |
| 31 | __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT)) | 32 | __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT)) |
| @@ -37,6 +38,9 @@ static inline void *phys_to_virt(unsigned long address) | |||
| 37 | page_to_pfn(__page) << PAGE_SHIFT; \ | 38 | page_to_pfn(__page) << PAGE_SHIFT; \ |
| 38 | }) | 39 | }) |
| 39 | #endif | 40 | #endif |
| 41 | #else | ||
| 42 | #define page_to_phys(page) (((page) - mem_map) << PAGE_SHIFT) | ||
| 43 | #endif | ||
| 40 | 44 | ||
| 41 | /* | 45 | /* |
| 42 | * IO bus memory addresses are 1:1 with the physical address, | 46 | * IO bus memory addresses are 1:1 with the physical address, |
