aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/mm
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@tilera.com>2013-08-09 16:17:03 -0400
committerChris Metcalf <cmetcalf@tilera.com>2013-08-30 11:56:38 -0400
commit084fe6a0f53f61fd5f9b33391af1077addec0ce0 (patch)
tree36651b0396ccdff9c2cdebddbe2c1c3e1aa5d4e0 /arch/tile/mm
parentabe3265a6d2e5e805361e0fea3346622f3199d68 (diff)
tile: remove set/clear_fixmap APIs
Nothing in the codebase was using them, and as written they took "unsigned long" as the physical address rather than "phys_addr_t", which is wrong on tilepro anyway. Rather than fixing stale APIs, just remove them; if there's ever demand for them on this platform, we can put them back. Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Diffstat (limited to 'arch/tile/mm')
-rw-r--r--arch/tile/mm/init.c5
-rw-r--r--arch/tile/mm/pgtable.c49
2 files changed, 1 insertions, 53 deletions
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
index e182958c707d..3bfa1275e333 100644
--- a/arch/tile/mm/init.c
+++ b/arch/tile/mm/init.c
@@ -777,10 +777,7 @@ void __init paging_init(void)
777 777
778 kernel_physical_mapping_init(pgd_base); 778 kernel_physical_mapping_init(pgd_base);
779 779
780 /* 780 /* Fixed mappings, only the page table structure has to be created. */
781 * Fixed mappings, only the page table structure has to be
782 * created - mappings will be set by set_fixmap():
783 */
784 page_table_range_init(fix_to_virt(__end_of_fixed_addresses - 1), 781 page_table_range_init(fix_to_virt(__end_of_fixed_addresses - 1),
785 FIXADDR_TOP, pgd_base); 782 FIXADDR_TOP, pgd_base);
786 783
diff --git a/arch/tile/mm/pgtable.c b/arch/tile/mm/pgtable.c
index 2bd572be9dba..e41487e22163 100644
--- a/arch/tile/mm/pgtable.c
+++ b/arch/tile/mm/pgtable.c
@@ -83,55 +83,6 @@ void show_mem(unsigned int filter)
83 } 83 }
84} 84}
85 85
86/*
87 * Associate a virtual page frame with a given physical page frame
88 * and protection flags for that frame.
89 */
90static void set_pte_pfn(unsigned long vaddr, unsigned long pfn, pgprot_t flags)
91{
92 pgd_t *pgd;
93 pud_t *pud;
94 pmd_t *pmd;
95 pte_t *pte;
96
97 pgd = swapper_pg_dir + pgd_index(vaddr);
98 if (pgd_none(*pgd)) {
99 BUG();
100 return;
101 }
102 pud = pud_offset(pgd, vaddr);
103 if (pud_none(*pud)) {
104 BUG();
105 return;
106 }
107 pmd = pmd_offset(pud, vaddr);
108 if (pmd_none(*pmd)) {
109 BUG();
110 return;
111 }
112 pte = pte_offset_kernel(pmd, vaddr);
113 /* <pfn,flags> stored as-is, to permit clearing entries */
114 set_pte(pte, pfn_pte(pfn, flags));
115
116 /*
117 * It's enough to flush this one mapping.
118 * This appears conservative since it is only called
119 * from __set_fixmap.
120 */
121 local_flush_tlb_page(NULL, vaddr, PAGE_SIZE);
122}
123
124void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t flags)
125{
126 unsigned long address = __fix_to_virt(idx);
127
128 if (idx >= __end_of_fixed_addresses) {
129 BUG();
130 return;
131 }
132 set_pte_pfn(address, phys >> PAGE_SHIFT, flags);
133}
134
135/** 86/**
136 * shatter_huge_page() - ensure a given address is mapped by a small page. 87 * shatter_huge_page() - ensure a given address is mapped by a small page.
137 * 88 *