diff options
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/branch.c | 8 | ||||
-rw-r--r-- | arch/mips/kernel/proc.c | 9 | ||||
-rw-r--r-- | arch/mips/kernel/ptrace.c | 14 | ||||
-rw-r--r-- | arch/mips/kernel/scall32-o32.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-64.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-n32.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/scall64-o32.S | 1 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 4 |
8 files changed, 18 insertions, 21 deletions
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c index 4d78bf445a9c..76122ff5cb5e 100644 --- a/arch/mips/kernel/branch.c +++ b/arch/mips/kernel/branch.c | |||
@@ -317,7 +317,7 @@ int __compute_return_epc_for_insn(struct pt_regs *regs, | |||
317 | if (regs->regs[insn.i_format.rs] == | 317 | if (regs->regs[insn.i_format.rs] == |
318 | regs->regs[insn.i_format.rt]) { | 318 | regs->regs[insn.i_format.rt]) { |
319 | epc = epc + 4 + (insn.i_format.simmediate << 2); | 319 | epc = epc + 4 + (insn.i_format.simmediate << 2); |
320 | if (insn.i_format.rt == beql_op) | 320 | if (insn.i_format.opcode == beql_op) |
321 | ret = BRANCH_LIKELY_TAKEN; | 321 | ret = BRANCH_LIKELY_TAKEN; |
322 | } else | 322 | } else |
323 | epc += 8; | 323 | epc += 8; |
@@ -329,7 +329,7 @@ int __compute_return_epc_for_insn(struct pt_regs *regs, | |||
329 | if (regs->regs[insn.i_format.rs] != | 329 | if (regs->regs[insn.i_format.rs] != |
330 | regs->regs[insn.i_format.rt]) { | 330 | regs->regs[insn.i_format.rt]) { |
331 | epc = epc + 4 + (insn.i_format.simmediate << 2); | 331 | epc = epc + 4 + (insn.i_format.simmediate << 2); |
332 | if (insn.i_format.rt == bnel_op) | 332 | if (insn.i_format.opcode == bnel_op) |
333 | ret = BRANCH_LIKELY_TAKEN; | 333 | ret = BRANCH_LIKELY_TAKEN; |
334 | } else | 334 | } else |
335 | epc += 8; | 335 | epc += 8; |
@@ -341,7 +341,7 @@ int __compute_return_epc_for_insn(struct pt_regs *regs, | |||
341 | /* rt field assumed to be zero */ | 341 | /* rt field assumed to be zero */ |
342 | if ((long)regs->regs[insn.i_format.rs] <= 0) { | 342 | if ((long)regs->regs[insn.i_format.rs] <= 0) { |
343 | epc = epc + 4 + (insn.i_format.simmediate << 2); | 343 | epc = epc + 4 + (insn.i_format.simmediate << 2); |
344 | if (insn.i_format.rt == bnel_op) | 344 | if (insn.i_format.opcode == blezl_op) |
345 | ret = BRANCH_LIKELY_TAKEN; | 345 | ret = BRANCH_LIKELY_TAKEN; |
346 | } else | 346 | } else |
347 | epc += 8; | 347 | epc += 8; |
@@ -353,7 +353,7 @@ int __compute_return_epc_for_insn(struct pt_regs *regs, | |||
353 | /* rt field assumed to be zero */ | 353 | /* rt field assumed to be zero */ |
354 | if ((long)regs->regs[insn.i_format.rs] > 0) { | 354 | if ((long)regs->regs[insn.i_format.rs] > 0) { |
355 | epc = epc + 4 + (insn.i_format.simmediate << 2); | 355 | epc = epc + 4 + (insn.i_format.simmediate << 2); |
356 | if (insn.i_format.rt == bnel_op) | 356 | if (insn.i_format.opcode == bgtzl_op) |
357 | ret = BRANCH_LIKELY_TAKEN; | 357 | ret = BRANCH_LIKELY_TAKEN; |
358 | } else | 358 | } else |
359 | epc += 8; | 359 | epc += 8; |
diff --git a/arch/mips/kernel/proc.c b/arch/mips/kernel/proc.c index e40971b51d2f..037a44d962f3 100644 --- a/arch/mips/kernel/proc.c +++ b/arch/mips/kernel/proc.c | |||
@@ -124,14 +124,7 @@ static int show_cpuinfo(struct seq_file *m, void *v) | |||
124 | seq_printf(m, "kscratch registers\t: %d\n", | 124 | seq_printf(m, "kscratch registers\t: %d\n", |
125 | hweight8(cpu_data[n].kscratch_mask)); | 125 | hweight8(cpu_data[n].kscratch_mask)); |
126 | seq_printf(m, "core\t\t\t: %d\n", cpu_data[n].core); | 126 | seq_printf(m, "core\t\t\t: %d\n", cpu_data[n].core); |
127 | #if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC) | 127 | |
128 | if (cpu_has_mipsmt) { | ||
129 | seq_printf(m, "VPE\t\t\t: %d\n", cpu_data[n].vpe_id); | ||
130 | #if defined(CONFIG_MIPS_MT_SMTC) | ||
131 | seq_printf(m, "TC\t\t\t: %d\n", cpu_data[n].tc_id); | ||
132 | #endif | ||
133 | } | ||
134 | #endif | ||
135 | sprintf(fmt, "VCE%%c exceptions\t\t: %s\n", | 128 | sprintf(fmt, "VCE%%c exceptions\t\t: %s\n", |
136 | cpu_has_vce ? "%u" : "not available"); | 129 | cpu_has_vce ? "%u" : "not available"); |
137 | seq_printf(m, fmt, 'D', vced_count); | 130 | seq_printf(m, fmt, 'D', vced_count); |
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c index 71f85f427034..f639ccd5060c 100644 --- a/arch/mips/kernel/ptrace.c +++ b/arch/mips/kernel/ptrace.c | |||
@@ -163,7 +163,7 @@ int ptrace_get_watch_regs(struct task_struct *child, | |||
163 | enum pt_watch_style style; | 163 | enum pt_watch_style style; |
164 | int i; | 164 | int i; |
165 | 165 | ||
166 | if (!cpu_has_watch || current_cpu_data.watch_reg_use_cnt == 0) | 166 | if (!cpu_has_watch || boot_cpu_data.watch_reg_use_cnt == 0) |
167 | return -EIO; | 167 | return -EIO; |
168 | if (!access_ok(VERIFY_WRITE, addr, sizeof(struct pt_watch_regs))) | 168 | if (!access_ok(VERIFY_WRITE, addr, sizeof(struct pt_watch_regs))) |
169 | return -EIO; | 169 | return -EIO; |
@@ -177,14 +177,14 @@ int ptrace_get_watch_regs(struct task_struct *child, | |||
177 | #endif | 177 | #endif |
178 | 178 | ||
179 | __put_user(style, &addr->style); | 179 | __put_user(style, &addr->style); |
180 | __put_user(current_cpu_data.watch_reg_use_cnt, | 180 | __put_user(boot_cpu_data.watch_reg_use_cnt, |
181 | &addr->WATCH_STYLE.num_valid); | 181 | &addr->WATCH_STYLE.num_valid); |
182 | for (i = 0; i < current_cpu_data.watch_reg_use_cnt; i++) { | 182 | for (i = 0; i < boot_cpu_data.watch_reg_use_cnt; i++) { |
183 | __put_user(child->thread.watch.mips3264.watchlo[i], | 183 | __put_user(child->thread.watch.mips3264.watchlo[i], |
184 | &addr->WATCH_STYLE.watchlo[i]); | 184 | &addr->WATCH_STYLE.watchlo[i]); |
185 | __put_user(child->thread.watch.mips3264.watchhi[i] & 0xfff, | 185 | __put_user(child->thread.watch.mips3264.watchhi[i] & 0xfff, |
186 | &addr->WATCH_STYLE.watchhi[i]); | 186 | &addr->WATCH_STYLE.watchhi[i]); |
187 | __put_user(current_cpu_data.watch_reg_masks[i], | 187 | __put_user(boot_cpu_data.watch_reg_masks[i], |
188 | &addr->WATCH_STYLE.watch_masks[i]); | 188 | &addr->WATCH_STYLE.watch_masks[i]); |
189 | } | 189 | } |
190 | for (; i < 8; i++) { | 190 | for (; i < 8; i++) { |
@@ -204,12 +204,12 @@ int ptrace_set_watch_regs(struct task_struct *child, | |||
204 | unsigned long lt[NUM_WATCH_REGS]; | 204 | unsigned long lt[NUM_WATCH_REGS]; |
205 | u16 ht[NUM_WATCH_REGS]; | 205 | u16 ht[NUM_WATCH_REGS]; |
206 | 206 | ||
207 | if (!cpu_has_watch || current_cpu_data.watch_reg_use_cnt == 0) | 207 | if (!cpu_has_watch || boot_cpu_data.watch_reg_use_cnt == 0) |
208 | return -EIO; | 208 | return -EIO; |
209 | if (!access_ok(VERIFY_READ, addr, sizeof(struct pt_watch_regs))) | 209 | if (!access_ok(VERIFY_READ, addr, sizeof(struct pt_watch_regs))) |
210 | return -EIO; | 210 | return -EIO; |
211 | /* Check the values. */ | 211 | /* Check the values. */ |
212 | for (i = 0; i < current_cpu_data.watch_reg_use_cnt; i++) { | 212 | for (i = 0; i < boot_cpu_data.watch_reg_use_cnt; i++) { |
213 | __get_user(lt[i], &addr->WATCH_STYLE.watchlo[i]); | 213 | __get_user(lt[i], &addr->WATCH_STYLE.watchlo[i]); |
214 | #ifdef CONFIG_32BIT | 214 | #ifdef CONFIG_32BIT |
215 | if (lt[i] & __UA_LIMIT) | 215 | if (lt[i] & __UA_LIMIT) |
@@ -228,7 +228,7 @@ int ptrace_set_watch_regs(struct task_struct *child, | |||
228 | return -EINVAL; | 228 | return -EINVAL; |
229 | } | 229 | } |
230 | /* Install them. */ | 230 | /* Install them. */ |
231 | for (i = 0; i < current_cpu_data.watch_reg_use_cnt; i++) { | 231 | for (i = 0; i < boot_cpu_data.watch_reg_use_cnt; i++) { |
232 | if (lt[i] & 7) | 232 | if (lt[i] & 7) |
233 | watch_active = 1; | 233 | watch_active = 1; |
234 | child->thread.watch.mips3264.watchlo[i] = lt[i]; | 234 | child->thread.watch.mips3264.watchlo[i] = lt[i]; |
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index fdc70b400442..3245474f19d5 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
@@ -577,3 +577,4 @@ EXPORT(sys_call_table) | |||
577 | PTR sys_finit_module | 577 | PTR sys_finit_module |
578 | PTR sys_sched_setattr | 578 | PTR sys_sched_setattr |
579 | PTR sys_sched_getattr /* 4350 */ | 579 | PTR sys_sched_getattr /* 4350 */ |
580 | PTR sys_renameat2 | ||
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index dd99c3285aea..be2fedd4ae33 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
@@ -430,4 +430,5 @@ EXPORT(sys_call_table) | |||
430 | PTR sys_getdents64 | 430 | PTR sys_getdents64 |
431 | PTR sys_sched_setattr | 431 | PTR sys_sched_setattr |
432 | PTR sys_sched_getattr /* 5310 */ | 432 | PTR sys_sched_getattr /* 5310 */ |
433 | PTR sys_renameat2 | ||
433 | .size sys_call_table,.-sys_call_table | 434 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index f68d2f4f0090..c1dbcda4b816 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
@@ -423,4 +423,5 @@ EXPORT(sysn32_call_table) | |||
423 | PTR sys_finit_module | 423 | PTR sys_finit_module |
424 | PTR sys_sched_setattr | 424 | PTR sys_sched_setattr |
425 | PTR sys_sched_getattr | 425 | PTR sys_sched_getattr |
426 | PTR sys_renameat2 /* 6315 */ | ||
426 | .size sysn32_call_table,.-sysn32_call_table | 427 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 70f6acecd928..f1343ccd7ed7 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
@@ -556,4 +556,5 @@ EXPORT(sys32_call_table) | |||
556 | PTR sys_finit_module | 556 | PTR sys_finit_module |
557 | PTR sys_sched_setattr | 557 | PTR sys_sched_setattr |
558 | PTR sys_sched_getattr /* 4350 */ | 558 | PTR sys_sched_getattr /* 4350 */ |
559 | PTR sys_renameat2 | ||
559 | .size sys32_call_table,.-sys32_call_table | 560 | .size sys32_call_table,.-sys32_call_table |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 074e857ced28..8119ac2fdfc9 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -1545,7 +1545,7 @@ asmlinkage void cache_parity_error(void) | |||
1545 | reg_val & (1<<30) ? "secondary" : "primary", | 1545 | reg_val & (1<<30) ? "secondary" : "primary", |
1546 | reg_val & (1<<31) ? "data" : "insn"); | 1546 | reg_val & (1<<31) ? "data" : "insn"); |
1547 | if (cpu_has_mips_r2 && | 1547 | if (cpu_has_mips_r2 && |
1548 | ((current_cpu_data.processor_id && 0xff0000) == PRID_COMP_MIPS)) { | 1548 | ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { |
1549 | pr_err("Error bits: %s%s%s%s%s%s%s%s\n", | 1549 | pr_err("Error bits: %s%s%s%s%s%s%s%s\n", |
1550 | reg_val & (1<<29) ? "ED " : "", | 1550 | reg_val & (1<<29) ? "ED " : "", |
1551 | reg_val & (1<<28) ? "ET " : "", | 1551 | reg_val & (1<<28) ? "ET " : "", |
@@ -1585,7 +1585,7 @@ asmlinkage void do_ftlb(void) | |||
1585 | 1585 | ||
1586 | /* For the moment, report the problem and hang. */ | 1586 | /* For the moment, report the problem and hang. */ |
1587 | if (cpu_has_mips_r2 && | 1587 | if (cpu_has_mips_r2 && |
1588 | ((current_cpu_data.processor_id && 0xff0000) == PRID_COMP_MIPS)) { | 1588 | ((current_cpu_data.processor_id & 0xff0000) == PRID_COMP_MIPS)) { |
1589 | pr_err("FTLB error exception, cp0_ecc=0x%08x:\n", | 1589 | pr_err("FTLB error exception, cp0_ecc=0x%08x:\n", |
1590 | read_c0_ecc()); | 1590 | read_c0_ecc()); |
1591 | pr_err("cp0_errorepc == %0*lx\n", field, read_c0_errorepc()); | 1591 | pr_err("cp0_errorepc == %0*lx\n", field, read_c0_errorepc()); |