diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2015-03-05 06:36:31 -0500 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2015-10-28 10:01:05 -0400 |
commit | 336e2136e1353db8e9e731c27381ee0735656a8a (patch) | |
tree | e386405627b5e1f68f04a1d4f854f3121b913d45 /arch/arc/include | |
parent | d40846457fc23cd841a60fdc2786e08a8bedb35b (diff) |
ARC: mm: preps ahead of HIGHMEM support
Before we plug in highmem support, some of code needs to be ready for it
- copy_user_highpage() needs to be using the kmap_atomic API
- mk_pte() can't assume page_address()
- do_page_fault() can't assume VMALLOC_END is end of kernel vaddr space
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/include')
-rw-r--r-- | arch/arc/include/asm/pgtable.h | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/arc/include/asm/pgtable.h b/arch/arc/include/asm/pgtable.h index f7c7273cd537..bd771351a1d1 100644 --- a/arch/arc/include/asm/pgtable.h +++ b/arch/arc/include/asm/pgtable.h | |||
@@ -270,13 +270,7 @@ static inline void pmd_set(pmd_t *pmdp, pte_t *ptep) | |||
270 | (unsigned long)(((pte_val(x) - CONFIG_LINUX_LINK_BASE) >> \ | 270 | (unsigned long)(((pte_val(x) - CONFIG_LINUX_LINK_BASE) >> \ |
271 | PAGE_SHIFT))) | 271 | PAGE_SHIFT))) |
272 | 272 | ||
273 | #define mk_pte(page, pgprot) \ | 273 | #define mk_pte(page, prot) pfn_pte(page_to_pfn(page), prot) |
274 | ({ \ | ||
275 | pte_t pte; \ | ||
276 | pte_val(pte) = __pa(page_address(page)) + pgprot_val(pgprot); \ | ||
277 | pte; \ | ||
278 | }) | ||
279 | |||
280 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) | 274 | #define pte_pfn(pte) (pte_val(pte) >> PAGE_SHIFT) |
281 | #define pfn_pte(pfn, prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))) | 275 | #define pfn_pte(pfn, prot) (__pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))) |
282 | #define __pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) | 276 | #define __pte_index(addr) (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1)) |
@@ -360,7 +354,6 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, | |||
360 | #define pgd_offset_fast(mm, addr) pgd_offset(mm, addr) | 354 | #define pgd_offset_fast(mm, addr) pgd_offset(mm, addr) |
361 | #endif | 355 | #endif |
362 | 356 | ||
363 | extern void paging_init(void); | ||
364 | extern pgd_t swapper_pg_dir[] __aligned(PAGE_SIZE); | 357 | extern pgd_t swapper_pg_dir[] __aligned(PAGE_SIZE); |
365 | void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, | 358 | void update_mmu_cache(struct vm_area_struct *vma, unsigned long address, |
366 | pte_t *ptep); | 359 | pte_t *ptep); |