diff options
Diffstat (limited to 'arch/cris')
-rw-r--r-- | arch/cris/arch-v10/mm/tlb.c | 9 | ||||
-rw-r--r-- | arch/cris/arch-v32/mm/tlb.c | 9 |
2 files changed, 6 insertions, 12 deletions
diff --git a/arch/cris/arch-v10/mm/tlb.c b/arch/cris/arch-v10/mm/tlb.c index 70a5523eff78..7d9fec88dee5 100644 --- a/arch/cris/arch-v10/mm/tlb.c +++ b/arch/cris/arch-v10/mm/tlb.c | |||
@@ -42,8 +42,7 @@ flush_tlb_all(void) | |||
42 | * in the same 4-way entry group. details.. | 42 | * in the same 4-way entry group. details.. |
43 | */ | 43 | */ |
44 | 44 | ||
45 | local_save_flags(flags); | 45 | local_irq_save(flags); |
46 | local_irq_disable(); | ||
47 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { | 46 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { |
48 | *R_TLB_SELECT = ( IO_FIELD(R_TLB_SELECT, index, i) ); | 47 | *R_TLB_SELECT = ( IO_FIELD(R_TLB_SELECT, index, i) ); |
49 | *R_TLB_HI = ( IO_FIELD(R_TLB_HI, page_id, INVALID_PAGEID ) | | 48 | *R_TLB_HI = ( IO_FIELD(R_TLB_HI, page_id, INVALID_PAGEID ) | |
@@ -78,8 +77,7 @@ flush_tlb_mm(struct mm_struct *mm) | |||
78 | * global pages. is it worth the extra I/O ? | 77 | * global pages. is it worth the extra I/O ? |
79 | */ | 78 | */ |
80 | 79 | ||
81 | local_save_flags(flags); | 80 | local_irq_save(flags); |
82 | local_irq_disable(); | ||
83 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { | 81 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { |
84 | *R_TLB_SELECT = IO_FIELD(R_TLB_SELECT, index, i); | 82 | *R_TLB_SELECT = IO_FIELD(R_TLB_SELECT, index, i); |
85 | if (IO_EXTRACT(R_TLB_HI, page_id, *R_TLB_HI) == page_id) { | 83 | if (IO_EXTRACT(R_TLB_HI, page_id, *R_TLB_HI) == page_id) { |
@@ -118,8 +116,7 @@ flush_tlb_page(struct vm_area_struct *vma, | |||
118 | * and the virtual address requested | 116 | * and the virtual address requested |
119 | */ | 117 | */ |
120 | 118 | ||
121 | local_save_flags(flags); | 119 | local_irq_save(flags); |
122 | local_irq_disable(); | ||
123 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { | 120 | for(i = 0; i < NUM_TLB_ENTRIES; i++) { |
124 | unsigned long tlb_hi; | 121 | unsigned long tlb_hi; |
125 | *R_TLB_SELECT = IO_FIELD(R_TLB_SELECT, index, i); | 122 | *R_TLB_SELECT = IO_FIELD(R_TLB_SELECT, index, i); |
diff --git a/arch/cris/arch-v32/mm/tlb.c b/arch/cris/arch-v32/mm/tlb.c index 9d75d7692303..c2d12e9c40d7 100644 --- a/arch/cris/arch-v32/mm/tlb.c +++ b/arch/cris/arch-v32/mm/tlb.c | |||
@@ -54,8 +54,7 @@ __flush_tlb_all(void) | |||
54 | * Mask with 0xf so similar TLB entries aren't written in the same 4-way | 54 | * Mask with 0xf so similar TLB entries aren't written in the same 4-way |
55 | * entry group. | 55 | * entry group. |
56 | */ | 56 | */ |
57 | local_save_flags(flags); | 57 | local_irq_save(flags); |
58 | local_irq_disable(); | ||
59 | 58 | ||
60 | for (mmu = 1; mmu <= 2; mmu++) { | 59 | for (mmu = 1; mmu <= 2; mmu++) { |
61 | SUPP_BANK_SEL(mmu); /* Select the MMU */ | 60 | SUPP_BANK_SEL(mmu); /* Select the MMU */ |
@@ -92,8 +91,7 @@ __flush_tlb_mm(struct mm_struct *mm) | |||
92 | return; | 91 | return; |
93 | 92 | ||
94 | /* Mark the TLB entries that match the page_id as invalid. */ | 93 | /* Mark the TLB entries that match the page_id as invalid. */ |
95 | local_save_flags(flags); | 94 | local_irq_save(flags); |
96 | local_irq_disable(); | ||
97 | 95 | ||
98 | for (mmu = 1; mmu <= 2; mmu++) { | 96 | for (mmu = 1; mmu <= 2; mmu++) { |
99 | SUPP_BANK_SEL(mmu); | 97 | SUPP_BANK_SEL(mmu); |
@@ -140,8 +138,7 @@ __flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) | |||
140 | * Invalidate those TLB entries that match both the mm context and the | 138 | * Invalidate those TLB entries that match both the mm context and the |
141 | * requested virtual address. | 139 | * requested virtual address. |
142 | */ | 140 | */ |
143 | local_save_flags(flags); | 141 | local_irq_save(flags); |
144 | local_irq_disable(); | ||
145 | 142 | ||
146 | for (mmu = 1; mmu <= 2; mmu++) { | 143 | for (mmu = 1; mmu <= 2; mmu++) { |
147 | SUPP_BANK_SEL(mmu); | 144 | SUPP_BANK_SEL(mmu); |