aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-05-13 16:16:39 -0400
committerDavid S. Miller <davem@davemloft.net>2012-05-13 16:16:39 -0400
commitf613914efcc566245cd605bde6943fb5c2cd4ba3 (patch)
tree9e57e4af94a5dedbda80cb304355c80295933a40 /arch/sparc
parent73c1377da9fb732bf8ff1b262a92507e8736b1bf (diff)
sparc32: Un-btfixup update_mmu_cache().
The magic Swift SRMMU code in question has not been enabled for something on the order of a decade, and it as well as it's comment is there in the history in case we ever need it again. Therefore all implementations are NOPs and we can kill this stuff off. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-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