diff options
Diffstat (limited to 'include/asm-mips')
-rw-r--r-- | include/asm-mips/checksum.h | 3 | ||||
-rw-r--r-- | include/asm-mips/hazards.h | 2 | ||||
-rw-r--r-- | include/asm-mips/irqflags.h | 22 | ||||
-rw-r--r-- | include/asm-mips/pgtable.h | 10 | ||||
-rw-r--r-- | include/asm-mips/thread_info.h | 2 |
5 files changed, 27 insertions, 12 deletions
diff --git a/include/asm-mips/checksum.h b/include/asm-mips/checksum.h index 24cdcc6eaab8..20a81e1548f5 100644 --- a/include/asm-mips/checksum.h +++ b/include/asm-mips/checksum.h | |||
@@ -159,7 +159,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, | |||
159 | #endif | 159 | #endif |
160 | " .set pop" | 160 | " .set pop" |
161 | : "=r" (sum) | 161 | : "=r" (sum) |
162 | : "0" (daddr), "r"(saddr), | 162 | : "0" ((__force unsigned long)daddr), |
163 | "r" ((__force unsigned long)saddr), | ||
163 | #ifdef __MIPSEL__ | 164 | #ifdef __MIPSEL__ |
164 | "r" ((proto + len) << 8), | 165 | "r" ((proto + len) << 8), |
165 | #else | 166 | #else |
diff --git a/include/asm-mips/hazards.h b/include/asm-mips/hazards.h index 0fe02945feba..50073157a617 100644 --- a/include/asm-mips/hazards.h +++ b/include/asm-mips/hazards.h | |||
@@ -157,7 +157,7 @@ ASMMACRO(back_to_back_c0_hazard, | |||
157 | * processors. | 157 | * processors. |
158 | */ | 158 | */ |
159 | ASMMACRO(mtc0_tlbw_hazard, | 159 | ASMMACRO(mtc0_tlbw_hazard, |
160 | nop | 160 | nop; nop |
161 | ) | 161 | ) |
162 | ASMMACRO(tlbw_use_hazard, | 162 | ASMMACRO(tlbw_use_hazard, |
163 | nop; nop; nop | 163 | nop; nop; nop |
diff --git a/include/asm-mips/irqflags.h b/include/asm-mips/irqflags.h index 46bf5de5ac72..af3b07dfad4b 100644 --- a/include/asm-mips/irqflags.h +++ b/include/asm-mips/irqflags.h | |||
@@ -15,6 +15,27 @@ | |||
15 | 15 | ||
16 | #include <asm/hazards.h> | 16 | #include <asm/hazards.h> |
17 | 17 | ||
18 | /* | ||
19 | * CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY does prompt replay of deferred IPIs, | ||
20 | * at the cost of branch and call overhead on each local_irq_restore() | ||
21 | */ | ||
22 | |||
23 | #ifdef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY | ||
24 | |||
25 | extern void smtc_ipi_replay(void); | ||
26 | |||
27 | #define irq_restore_epilog(flags) \ | ||
28 | do { \ | ||
29 | if (!(flags & 0x0400)) \ | ||
30 | smtc_ipi_replay(); \ | ||
31 | } while (0) | ||
32 | |||
33 | #else | ||
34 | |||
35 | #define irq_restore_epilog(ignore) do { } while (0) | ||
36 | |||
37 | #endif /* CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY */ | ||
38 | |||
18 | __asm__ ( | 39 | __asm__ ( |
19 | " .macro raw_local_irq_enable \n" | 40 | " .macro raw_local_irq_enable \n" |
20 | " .set push \n" | 41 | " .set push \n" |
@@ -193,6 +214,7 @@ do { \ | |||
193 | : "=r" (__tmp1) \ | 214 | : "=r" (__tmp1) \ |
194 | : "0" (flags) \ | 215 | : "0" (flags) \ |
195 | : "memory"); \ | 216 | : "memory"); \ |
217 | irq_restore_epilog(flags); \ | ||
196 | } while(0) | 218 | } while(0) |
197 | 219 | ||
198 | static inline int raw_irqs_disabled_flags(unsigned long flags) | 220 | static inline int raw_irqs_disabled_flags(unsigned long flags) |
diff --git a/include/asm-mips/pgtable.h b/include/asm-mips/pgtable.h index f2e1325fec6c..3fcfd7979de5 100644 --- a/include/asm-mips/pgtable.h +++ b/include/asm-mips/pgtable.h | |||
@@ -69,16 +69,6 @@ extern unsigned long zero_page_mask; | |||
69 | #define ZERO_PAGE(vaddr) \ | 69 | #define ZERO_PAGE(vaddr) \ |
70 | (virt_to_page((void *)(empty_zero_page + (((unsigned long)(vaddr)) & zero_page_mask)))) | 70 | (virt_to_page((void *)(empty_zero_page + (((unsigned long)(vaddr)) & zero_page_mask)))) |
71 | 71 | ||
72 | #define __HAVE_ARCH_MOVE_PTE | ||
73 | #define move_pte(pte, prot, old_addr, new_addr) \ | ||
74 | ({ \ | ||
75 | pte_t newpte = (pte); \ | ||
76 | if (pte_present(pte) && pfn_valid(pte_pfn(pte)) && \ | ||
77 | pte_page(pte) == ZERO_PAGE(old_addr)) \ | ||
78 | newpte = mk_pte(ZERO_PAGE(new_addr), (prot)); \ | ||
79 | newpte; \ | ||
80 | }) | ||
81 | |||
82 | extern void paging_init(void); | 72 | extern void paging_init(void); |
83 | 73 | ||
84 | /* | 74 | /* |
diff --git a/include/asm-mips/thread_info.h b/include/asm-mips/thread_info.h index e475c45ea263..fbcda8204473 100644 --- a/include/asm-mips/thread_info.h +++ b/include/asm-mips/thread_info.h | |||
@@ -118,6 +118,7 @@ register struct thread_info *__current_thread_info __asm__("$28"); | |||
118 | #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ | 118 | #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ |
119 | #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ | 119 | #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ |
120 | #define TIF_MEMDIE 18 | 120 | #define TIF_MEMDIE 18 |
121 | #define TIF_FREEZE 19 | ||
121 | #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ | 122 | #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ |
122 | 123 | ||
123 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 124 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
@@ -129,6 +130,7 @@ register struct thread_info *__current_thread_info __asm__("$28"); | |||
129 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) | 130 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) |
130 | #define _TIF_USEDFPU (1<<TIF_USEDFPU) | 131 | #define _TIF_USEDFPU (1<<TIF_USEDFPU) |
131 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 132 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
133 | #define _TIF_FREEZE (1<<TIF_FREEZE) | ||
132 | 134 | ||
133 | /* work to do on interrupt/exception return */ | 135 | /* work to do on interrupt/exception return */ |
134 | #define _TIF_WORK_MASK (0x0000ffef & ~_TIF_SECCOMP) | 136 | #define _TIF_WORK_MASK (0x0000ffef & ~_TIF_SECCOMP) |