diff options
author | Will Deacon <will.deacon@arm.com> | 2015-12-21 11:44:27 -0500 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-12-21 12:26:02 -0500 |
commit | c9cd0ed925c0b927283d4739bfe689eb9d1e9dfd (patch) | |
tree | 4ff8861114aa41098864b5b56f6798de4a817831 | |
parent | 20380bb390a443b2c5c8800cec59743faf8151b4 (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.c | 10 |
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 | ||
483 | void __pte_error(const char *file, int line, unsigned long val) | 483 | void __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 | ||
488 | void __pmd_error(const char *file, int line, unsigned long val) | 488 | void __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 | ||
493 | void __pud_error(const char *file, int line, unsigned long val) | 493 | void __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 | ||
498 | void __pgd_error(const char *file, int line, unsigned long val) | 498 | void __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 */ |