aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc/include/asm/pgtable_32.h4
-rw-r--r--arch/sparc/mm/srmmu.c40
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
359BTFIXUPDEF_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
363void srmmu_mapiorange(unsigned int bus, unsigned long xpa, 361void 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
531extern void tsunami_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); 531extern void tsunami_flush_tlb_page(struct vm_area_struct *vma, unsigned long page);
532extern void tsunami_setup_blockops(void); 532extern 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 */
545static 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 */
567extern void swift_flush_cache_all(void); 535extern void swift_flush_cache_all(void);
568extern void swift_flush_cache_mm(struct mm_struct *mm); 536extern 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
1221static void srmmu_update_mmu_cache(struct vm_area_struct * vma, unsigned long address, pte_t pte)
1222{
1223}
1224
1225void destroy_context(struct mm_struct *mm) 1189void 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