aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2006-10-04 14:02:23 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2006-10-04 14:02:23 -0400
commit0b2b6e1ddce4696cb7afcbb15a654fe95428a498 (patch)
treea6dd837de5ce7088ab1009d125e8bcd6cfeaa1e1
parent7676bef9c183fd573822cac9992927ef596d584c (diff)
[S390] Remove open-coded mem_map usage.
Use page_to_phys and pfn_to_page to avoid open-coded mem_map usage. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
-rw-r--r--arch/s390/mm/init.c10
-rw-r--r--include/asm-s390/io.h5
-rw-r--r--include/asm-s390/page.h1
-rw-r--r--include/asm-s390/pgalloc.h2
-rw-r--r--include/asm-s390/pgtable.h18
5 files changed, 17 insertions, 19 deletions
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index c302508ae31e..d99891718709 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -62,19 +62,21 @@ void show_mem(void)
62{ 62{
63 int i, total = 0, reserved = 0; 63 int i, total = 0, reserved = 0;
64 int shared = 0, cached = 0; 64 int shared = 0, cached = 0;
65 struct page *page;
65 66
66 printk("Mem-info:\n"); 67 printk("Mem-info:\n");
67 show_free_areas(); 68 show_free_areas();
68 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 69 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
69 i = max_mapnr; 70 i = max_mapnr;
70 while (i-- > 0) { 71 while (i-- > 0) {
72 page = pfn_to_page(i);
71 total++; 73 total++;
72 if (PageReserved(mem_map+i)) 74 if (PageReserved(page))
73 reserved++; 75 reserved++;
74 else if (PageSwapCache(mem_map+i)) 76 else if (PageSwapCache(page))
75 cached++; 77 cached++;
76 else if (page_count(mem_map+i)) 78 else if (page_count(page))
77 shared += page_count(mem_map+i) - 1; 79 shared += page_count(page) - 1;
78 } 80 }
79 printk("%d pages of RAM\n",total); 81 printk("%d pages of RAM\n",total);
80 printk("%d reserved pages\n",reserved); 82 printk("%d reserved pages\n",reserved);
diff --git a/include/asm-s390/io.h b/include/asm-s390/io.h
index 63c78b9399c4..efb7de9c1c6b 100644
--- a/include/asm-s390/io.h
+++ b/include/asm-s390/io.h
@@ -45,11 +45,6 @@ static inline void * phys_to_virt(unsigned long address)
45 return __io_virt(address); 45 return __io_virt(address);
46} 46}
47 47
48/*
49 * Change "struct page" to physical address.
50 */
51#define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT)
52
53extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags); 48extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags);
54 49
55static inline void * ioremap (unsigned long offset, unsigned long size) 50static inline void * ioremap (unsigned long offset, unsigned long size)
diff --git a/include/asm-s390/page.h b/include/asm-s390/page.h
index 796c400f2b79..363ea761d5ee 100644
--- a/include/asm-s390/page.h
+++ b/include/asm-s390/page.h
@@ -137,6 +137,7 @@ page_get_storage_key(unsigned long addr)
137#define __pa(x) (unsigned long)(x) 137#define __pa(x) (unsigned long)(x)
138#define __va(x) (void *)(unsigned long)(x) 138#define __va(x) (void *)(unsigned long)(x)
139#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) 139#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
140#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
140 141
141#define pfn_valid(pfn) ((pfn) < max_mapnr) 142#define pfn_valid(pfn) ((pfn) < max_mapnr)
142#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) 143#define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT)
diff --git a/include/asm-s390/pgalloc.h b/include/asm-s390/pgalloc.h
index 803bc7064418..28619de5ecae 100644
--- a/include/asm-s390/pgalloc.h
+++ b/include/asm-s390/pgalloc.h
@@ -116,7 +116,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
116static inline void 116static inline void
117pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *page) 117pmd_populate(struct mm_struct *mm, pmd_t *pmd, struct page *page)
118{ 118{
119 pmd_populate_kernel(mm, pmd, (pte_t *)((page-mem_map) << PAGE_SHIFT)); 119 pmd_populate_kernel(mm, pmd, (pte_t *)page_to_phys(page));
120} 120}
121 121
122/* 122/*
diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h
index ecdff13b2505..519f0a5ff181 100644
--- a/include/asm-s390/pgtable.h
+++ b/include/asm-s390/pgtable.h
@@ -599,7 +599,7 @@ ptep_establish(struct vm_area_struct *vma,
599 */ 599 */
600static inline int page_test_and_clear_dirty(struct page *page) 600static inline int page_test_and_clear_dirty(struct page *page)
601{ 601{
602 unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT); 602 unsigned long physpage = page_to_phys(page);
603 int skey = page_get_storage_key(physpage); 603 int skey = page_get_storage_key(physpage);
604 604
605 if (skey & _PAGE_CHANGED) 605 if (skey & _PAGE_CHANGED)
@@ -612,13 +612,13 @@ static inline int page_test_and_clear_dirty(struct page *page)
612 */ 612 */
613static inline int page_test_and_clear_young(struct page *page) 613static inline int page_test_and_clear_young(struct page *page)
614{ 614{
615 unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT); 615 unsigned long physpage = page_to_phys(page);
616 int ccode; 616 int ccode;
617 617
618 asm volatile ( 618 asm volatile(
619 "rrbe 0,%1\n" 619 " rrbe 0,%1\n"
620 "ipm %0\n" 620 " ipm %0\n"
621 "srl %0,28\n" 621 " srl %0,28\n"
622 : "=d" (ccode) : "a" (physpage) : "cc" ); 622 : "=d" (ccode) : "a" (physpage) : "cc" );
623 return ccode & 2; 623 return ccode & 2;
624} 624}
@@ -636,7 +636,7 @@ static inline pte_t mk_pte_phys(unsigned long physpage, pgprot_t pgprot)
636 636
637static inline pte_t mk_pte(struct page *page, pgprot_t pgprot) 637static inline pte_t mk_pte(struct page *page, pgprot_t pgprot)
638{ 638{
639 unsigned long physpage = __pa((page - mem_map) << PAGE_SHIFT); 639 unsigned long physpage = page_to_phys(page);
640 640
641 return mk_pte_phys(physpage, pgprot); 641 return mk_pte_phys(physpage, pgprot);
642} 642}
@@ -664,11 +664,11 @@ static inline pmd_t pfn_pmd(unsigned long pfn, pgprot_t pgprot)
664 664
665#define pmd_page_vaddr(pmd) (pmd_val(pmd) & PAGE_MASK) 665#define pmd_page_vaddr(pmd) (pmd_val(pmd) & PAGE_MASK)
666 666
667#define pmd_page(pmd) (mem_map+(pmd_val(pmd) >> PAGE_SHIFT)) 667#define pmd_page(pmd) pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
668 668
669#define pgd_page_vaddr(pgd) (pgd_val(pgd) & PAGE_MASK) 669#define pgd_page_vaddr(pgd) (pgd_val(pgd) & PAGE_MASK)
670 670
671#define pgd_page(pgd) (mem_map+(pgd_val(pgd) >> PAGE_SHIFT)) 671#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
672 672
673/* to find an entry in a page-table-directory */ 673/* to find an entry in a page-table-directory */
674#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1)) 674#define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))