aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2015-12-21 11:44:27 -0500
committerWill Deacon <will.deacon@arm.com>2015-12-21 12:26:02 -0500
commitc9cd0ed925c0b927283d4739bfe689eb9d1e9dfd (patch)
tree4ff8861114aa41098864b5b56f6798de4a817831
parent20380bb390a443b2c5c8800cec59743faf8151b4 (diff)
arm64: traps: address fallout from printk -> pr_* conversion
Commit ac7b406c1a9d ("arm64: Use pr_* instead of printk") was a fairly mindless s/printk/pr_*/ change driven by a complaint from checkpatch. As is usual with such changes, this has led to some odd behaviour on arm64: * syslog now picks up the "pr_emerg" line from dump_backtrace, but not the actual trace, which leads to a bunch of "kernel:Call trace:" lines in the log * __{pte,pmd,pgd}_error print at KERN_CRIT, as opposed to KERN_ERR which is used by other architectures. This patch restores the original printk behaviour for dump_backtrace and downgrade the pgtable error macros to KERN_ERR. Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r--arch/arm64/kernel/traps.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index bdc293f6adc4..cbedd724f48e 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -171,7 +171,7 @@ static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk)
171#endif 171#endif
172 172
173 skip = !!regs; 173 skip = !!regs;
174 pr_emerg("Call trace:\n"); 174 printk("Call trace:\n");
175 while (1) { 175 while (1) {
176 unsigned long where = frame.pc; 176 unsigned long where = frame.pc;
177 unsigned long stack; 177 unsigned long stack;
@@ -482,22 +482,22 @@ asmlinkage void bad_mode(struct pt_regs *regs, int reason, unsigned int esr)
482 482
483void __pte_error(const char *file, int line, unsigned long val) 483void __pte_error(const char *file, int line, unsigned long val)
484{ 484{
485 pr_crit("%s:%d: bad pte %016lx.\n", file, line, val); 485 pr_err("%s:%d: bad pte %016lx.\n", file, line, val);
486} 486}
487 487
488void __pmd_error(const char *file, int line, unsigned long val) 488void __pmd_error(const char *file, int line, unsigned long val)
489{ 489{
490 pr_crit("%s:%d: bad pmd %016lx.\n", file, line, val); 490 pr_err("%s:%d: bad pmd %016lx.\n", file, line, val);
491} 491}
492 492
493void __pud_error(const char *file, int line, unsigned long val) 493void __pud_error(const char *file, int line, unsigned long val)
494{ 494{
495 pr_crit("%s:%d: bad pud %016lx.\n", file, line, val); 495 pr_err("%s:%d: bad pud %016lx.\n", file, line, val);
496} 496}
497 497
498void __pgd_error(const char *file, int line, unsigned long val) 498void __pgd_error(const char *file, int line, unsigned long val)
499{ 499{
500 pr_crit("%s:%d: bad pgd %016lx.\n", file, line, val); 500 pr_err("%s:%d: bad pgd %016lx.\n", file, line, val);
501} 501}
502 502
503/* GENERIC_BUG traps */ 503/* GENERIC_BUG traps */