diff options
-rw-r--r-- | arch/sparc/include/asm/pgtable_32.h | 4 | ||||
-rw-r--r-- | arch/sparc/mm/srmmu.c | 40 |
2 files changed, 1 insertions, 43 deletions
diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h index 088db0c4e05f..b7c202f7d13a 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h | |||
@@ -356,9 +356,7 @@ void mmu_info(struct seq_file *m); | |||
356 | #define FAULT_CODE_WRITE 0x2 | 356 | #define FAULT_CODE_WRITE 0x2 |
357 | #define FAULT_CODE_USER 0x4 | 357 | #define FAULT_CODE_USER 0x4 |
358 | 358 | ||
359 | BTFIXUPDEF_CALL(void, update_mmu_cache, struct vm_area_struct *, unsigned long, pte_t *) | 359 | #define update_mmu_cache(vma, address, ptep) do { } while (0) |
360 | |||
361 | #define update_mmu_cache(vma,addr,ptep) BTFIXUP_CALL(update_mmu_cache)(vma,addr,ptep) | ||
362 | 360 | ||
363 | void srmmu_mapiorange(unsigned int bus, unsigned long xpa, | 361 | void srmmu_mapiorange(unsigned int bus, unsigned long xpa, |
364 | unsigned long xva, unsigned int len); | 362 | unsigned long xva, unsigned int len); |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 6efcb6b1ea18..4c4002f409ec 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
@@ -531,38 +531,6 @@ extern void tsunami_flush_tlb_range(struct vm_area_struct *vma, unsigned long st | |||
531 | extern void tsunami_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); | 531 | extern void tsunami_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); |
532 | extern void tsunami_setup_blockops(void); | 532 | extern void tsunami_setup_blockops(void); |
533 | 533 | ||
534 | /* | ||
535 | * Workaround, until we find what's going on with Swift. When low on memory, | ||
536 | * it sometimes loops in fault/handle_mm_fault incl. flush_tlb_page to find | ||
537 | * out it is already in page tables/ fault again on the same instruction. | ||
538 | * I really don't understand it, have checked it and contexts | ||
539 | * are right, flush_tlb_all is done as well, and it faults again... | ||
540 | * Strange. -jj | ||
541 | * | ||
542 | * The following code is a deadwood that may be necessary when | ||
543 | * we start to make precise page flushes again. --zaitcev | ||
544 | */ | ||
545 | static void swift_update_mmu_cache(struct vm_area_struct * vma, unsigned long address, pte_t *ptep) | ||
546 | { | ||
547 | #if 0 | ||
548 | static unsigned long last; | ||
549 | unsigned int val; | ||
550 | /* unsigned int n; */ | ||
551 | |||
552 | if (address == last) { | ||
553 | val = srmmu_hwprobe(address); | ||
554 | if (val != 0 && pte_val(*ptep) != val) { | ||
555 | printk("swift_update_mmu_cache: " | ||
556 | "addr %lx put %08x probed %08x from %pf\n", | ||
557 | address, pte_val(*ptep), val, | ||
558 | __builtin_return_address(0)); | ||
559 | srmmu_flush_whole_tlb(); | ||
560 | } | ||
561 | } | ||
562 | last = address; | ||
563 | #endif | ||
564 | } | ||
565 | |||
566 | /* swift.S */ | 534 | /* swift.S */ |
567 | extern void swift_flush_cache_all(void); | 535 | extern void swift_flush_cache_all(void); |
568 | extern void swift_flush_cache_mm(struct mm_struct *mm); | 536 | extern void swift_flush_cache_mm(struct mm_struct *mm); |
@@ -1218,10 +1186,6 @@ void mmu_info(struct seq_file *m) | |||
1218 | srmmu_nocache_map.used << SRMMU_NOCACHE_BITMAP_SHIFT); | 1186 | srmmu_nocache_map.used << SRMMU_NOCACHE_BITMAP_SHIFT); |
1219 | } | 1187 | } |
1220 | 1188 | ||
1221 | static void srmmu_update_mmu_cache(struct vm_area_struct * vma, unsigned long address, pte_t pte) | ||
1222 | { | ||
1223 | } | ||
1224 | |||
1225 | void destroy_context(struct mm_struct *mm) | 1189 | void destroy_context(struct mm_struct *mm) |
1226 | { | 1190 | { |
1227 | 1191 | ||
@@ -1522,8 +1486,6 @@ static void __init init_swift(void) | |||
1522 | BTFIXUPSET_CALL(flush_sig_insns, swift_flush_sig_insns, BTFIXUPCALL_NORM); | 1486 | BTFIXUPSET_CALL(flush_sig_insns, swift_flush_sig_insns, BTFIXUPCALL_NORM); |
1523 | BTFIXUPSET_CALL(flush_page_for_dma, swift_flush_page_for_dma, BTFIXUPCALL_NORM); | 1487 | BTFIXUPSET_CALL(flush_page_for_dma, swift_flush_page_for_dma, BTFIXUPCALL_NORM); |
1524 | 1488 | ||
1525 | BTFIXUPSET_CALL(update_mmu_cache, swift_update_mmu_cache, BTFIXUPCALL_NORM); | ||
1526 | |||
1527 | flush_page_for_dma_global = 0; | 1489 | flush_page_for_dma_global = 0; |
1528 | 1490 | ||
1529 | /* | 1491 | /* |
@@ -1982,8 +1944,6 @@ void __init load_mmu(void) | |||
1982 | extern void ld_mmu_iounit(void); | 1944 | extern void ld_mmu_iounit(void); |
1983 | 1945 | ||
1984 | /* Functions */ | 1946 | /* Functions */ |
1985 | BTFIXUPSET_CALL(update_mmu_cache, srmmu_update_mmu_cache, BTFIXUPCALL_NOP); | ||
1986 | |||
1987 | get_srmmu_type(); | 1947 | get_srmmu_type(); |
1988 | 1948 | ||
1989 | #ifdef CONFIG_SMP | 1949 | #ifdef CONFIG_SMP |