diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-13 16:16:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-13 16:16:39 -0400 |
commit | f613914efcc566245cd605bde6943fb5c2cd4ba3 (patch) | |
tree | 9e57e4af94a5dedbda80cb304355c80295933a40 /arch/sparc | |
parent | 73c1377da9fb732bf8ff1b262a92507e8736b1bf (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.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 |