diff options
| author | John David Anglin <dave.anglin@bell.net> | 2014-03-01 17:41:22 -0500 |
|---|---|---|
| committer | Helge Deller <deller@gmx.de> | 2014-03-23 11:46:30 -0400 |
| commit | 4b02a72a266b58268979cb6f9c5d4dd002148634 (patch) | |
| tree | dc77d83fb08376e633ed6c11c0ed6baac15cb3ed | |
| parent | a2fb4d782c61f77480e586578eeb4dfd27d134ea (diff) | |
parisc: Remove unused CONFIG_PARISC_TMPALIAS code
The attached change removes the unused and experimental
CONFIG_PARISC_TMPALIAS code. It doesn't work and I don't believe it will
ever be used.
Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
| -rw-r--r-- | arch/parisc/include/asm/page.h | 11 | ||||
| -rw-r--r-- | arch/parisc/kernel/cache.c | 64 |
2 files changed, 0 insertions, 75 deletions
diff --git a/arch/parisc/include/asm/page.h b/arch/parisc/include/asm/page.h index 637fe031aa84..60d5d174dfe4 100644 --- a/arch/parisc/include/asm/page.h +++ b/arch/parisc/include/asm/page.h | |||
| @@ -32,17 +32,6 @@ void copy_page_asm(void *to, void *from); | |||
| 32 | void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, | 32 | void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, |
| 33 | struct page *pg); | 33 | struct page *pg); |
| 34 | 34 | ||
| 35 | /* #define CONFIG_PARISC_TMPALIAS */ | ||
| 36 | |||
| 37 | #ifdef CONFIG_PARISC_TMPALIAS | ||
| 38 | void clear_user_highpage(struct page *page, unsigned long vaddr); | ||
| 39 | #define clear_user_highpage clear_user_highpage | ||
| 40 | struct vm_area_struct; | ||
| 41 | void copy_user_highpage(struct page *to, struct page *from, | ||
| 42 | unsigned long vaddr, struct vm_area_struct *vma); | ||
| 43 | #define __HAVE_ARCH_COPY_USER_HIGHPAGE | ||
| 44 | #endif | ||
| 45 | |||
| 46 | /* | 35 | /* |
| 47 | * These are used to make use of C type-checking.. | 36 | * These are used to make use of C type-checking.. |
| 48 | */ | 37 | */ |
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index ac87a40502e6..a6ffc775a9f8 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
| @@ -581,67 +581,3 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long | |||
| 581 | __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn)); | 581 | __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn)); |
| 582 | } | 582 | } |
| 583 | } | 583 | } |
| 584 | |||
| 585 | #ifdef CONFIG_PARISC_TMPALIAS | ||
| 586 | |||
| 587 | void clear_user_highpage(struct page *page, unsigned long vaddr) | ||
| 588 | { | ||
| 589 | void *vto; | ||
| 590 | unsigned long flags; | ||
| 591 | |||
| 592 | /* Clear using TMPALIAS region. The page doesn't need to | ||
| 593 | be flushed but the kernel mapping needs to be purged. */ | ||
| 594 | |||
| 595 | vto = kmap_atomic(page); | ||
| 596 | |||
| 597 | /* The PA-RISC 2.0 Architecture book states on page F-6: | ||
| 598 | "Before a write-capable translation is enabled, *all* | ||
| 599 | non-equivalently-aliased translations must be removed | ||
| 600 | from the page table and purged from the TLB. (Note | ||
| 601 | that the caches are not required to be flushed at this | ||
| 602 | time.) Before any non-equivalent aliased translation | ||
| 603 | is re-enabled, the virtual address range for the writeable | ||
| 604 | page (the entire page) must be flushed from the cache, | ||
| 605 | and the write-capable translation removed from the page | ||
| 606 | table and purged from the TLB." */ | ||
| 607 | |||
| 608 | purge_kernel_dcache_page_asm((unsigned long)vto); | ||
| 609 | purge_tlb_start(flags); | ||
| 610 | pdtlb_kernel(vto); | ||
| 611 | purge_tlb_end(flags); | ||
| 612 | preempt_disable(); | ||
| 613 | clear_user_page_asm(vto, vaddr); | ||
| 614 | preempt_enable(); | ||
| 615 | |||
| 616 | pagefault_enable(); /* kunmap_atomic(addr, KM_USER0); */ | ||
| 617 | } | ||
| 618 | |||
| 619 | void copy_user_highpage(struct page *to, struct page *from, | ||
| 620 | unsigned long vaddr, struct vm_area_struct *vma) | ||
| 621 | { | ||
| 622 | void *vfrom, *vto; | ||
| 623 | unsigned long flags; | ||
| 624 | |||
| 625 | /* Copy using TMPALIAS region. This has the advantage | ||
| 626 | that the `from' page doesn't need to be flushed. However, | ||
| 627 | the `to' page must be flushed in copy_user_page_asm since | ||
| 628 | it can be used to bring in executable code. */ | ||
| 629 | |||
| 630 | vfrom = kmap_atomic(from); | ||
| 631 | vto = kmap_atomic(to); | ||
| 632 | |||
| 633 | purge_kernel_dcache_page_asm((unsigned long)vto); | ||
| 634 | purge_tlb_start(flags); | ||
| 635 | pdtlb_kernel(vto); | ||
| 636 | pdtlb_kernel(vfrom); | ||
| 637 | purge_tlb_end(flags); | ||
| 638 | preempt_disable(); | ||
| 639 | copy_user_page_asm(vto, vfrom, vaddr); | ||
| 640 | flush_dcache_page_asm(__pa(vto), vaddr); | ||
| 641 | preempt_enable(); | ||
| 642 | |||
| 643 | pagefault_enable(); /* kunmap_atomic(addr, KM_USER1); */ | ||
| 644 | pagefault_enable(); /* kunmap_atomic(addr, KM_USER0); */ | ||
| 645 | } | ||
| 646 | |||
| 647 | #endif /* CONFIG_PARISC_TMPALIAS */ | ||
