From: Matt Redfearn <matt.redfearn@imgtec.com> To: Ralf Baechle <ralf@linux-mips.org> Cc: <linux-mips@linux-mips.org>, "Jason A . Donenfeld" <Jason@zx2c4.com>, Thomas Gleixner <tglx@linutronix.de>, Matt Redfearn <matt.redfearn@imgtec.com>, Adam Buchbinder <adam.buchbinder@gmail.com>, "Maciej W. Rozycki" <macro@imgtec.com>, Marcin Nowakowski <marcin.nowakowski@imgtec.com>, Chris Metcalf <cmetcalf@mellanox.com>, <linux-kernel@vger.kernel.org>, James Hogan <james.hogan@imgtec.com>, Paul Burton <paul.burton@imgtec.com>, Jiri Slaby <jslaby@suse.cz>, Andrew Morton <akpm@linux-foundation.org> Subject: [PATCH v3 2/5] MIPS: Stack unwinding while on IRQ stack Date: Mon, 19 Dec 2016 14:20:57 +0000 [thread overview] Message-ID: <1482157260-18730-3-git-send-email-matt.redfearn@imgtec.com> (raw) In-Reply-To: <1482157260-18730-1-git-send-email-matt.redfearn@imgtec.com> Within unwind stack, check if the stack pointer being unwound is within the CPU's irq_stack and if so use that page rather than the task's stack page. Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com> --- Changes in v3: None Changes in v2: None arch/mips/kernel/process.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c index 9514e5f2209f..4fdbf7078071 100644 --- a/arch/mips/kernel/process.c +++ b/arch/mips/kernel/process.c @@ -33,6 +33,7 @@ #include <asm/dsemul.h> #include <asm/dsp.h> #include <asm/fpu.h> +#include <asm/irq.h> #include <asm/msa.h> #include <asm/pgtable.h> #include <asm/mipsregs.h> @@ -511,7 +512,19 @@ EXPORT_SYMBOL(unwind_stack_by_address); unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, unsigned long pc, unsigned long *ra) { - unsigned long stack_page = (unsigned long)task_stack_page(task); + unsigned long stack_page = 0; + int cpu; + + for_each_possible_cpu(cpu) { + if (on_irq_stack(cpu, *sp)) { + stack_page = (unsigned long)irq_stack[cpu]; + break; + } + } + + if (!stack_page) + stack_page = (unsigned long)task_stack_page(task); + return unwind_stack_by_address(stack_page, sp, pc, ra); } #endif -- 2.7.4
next prev parent reply other threads:[~2016-12-19 14:21 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-12-19 14:20 [PATCH v3 0/5] MIPS: Add per-cpu " Matt Redfearn 2016-12-19 14:20 ` [PATCH v3 1/5] MIPS: Introduce irq_stack Matt Redfearn 2016-12-19 14:20 ` Matt Redfearn [this message] 2016-12-19 14:20 ` [PATCH v3 3/5] MIPS: Only change $28 to thread_info if coming from user mode Matt Redfearn 2016-12-21 12:13 ` Maciej W. Rozycki 2016-12-19 14:20 ` [PATCH v3 4/5] MIPS: Switch to the irq_stack in interrupts Matt Redfearn 2016-12-19 14:21 ` [PATCH v3 5/5] MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK Matt Redfearn 2016-12-21 1:18 ` [PATCH v3 0/5] MIPS: Add per-cpu IRQ stack Jason A. Donenfeld 2017-01-10 23:32 ` Jason A. Donenfeld 2017-01-11 1:20 ` Ralf Baechle 2017-01-11 23:32 ` Jason A. Donenfeld 2017-01-13 9:49 ` James Hogan 2017-01-15 13:39 ` Jason A. Donenfeld 2017-01-15 13:48 ` Greg Kroah-Hartman 2017-01-15 14:11 ` Jason A. Donenfeld 2017-01-15 14:15 ` Jason A. Donenfeld 2017-01-15 14:30 ` Greg Kroah-Hartman 2017-01-15 18:07 ` Jason A. Donenfeld
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1482157260-18730-3-git-send-email-matt.redfearn@imgtec.com \ --to=matt.redfearn@imgtec.com \ --cc=Jason@zx2c4.com \ --cc=adam.buchbinder@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=cmetcalf@mellanox.com \ --cc=james.hogan@imgtec.com \ --cc=jslaby@suse.cz \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mips@linux-mips.org \ --cc=macro@imgtec.com \ --cc=marcin.nowakowski@imgtec.com \ --cc=paul.burton@imgtec.com \ --cc=ralf@linux-mips.org \ --cc=tglx@linutronix.de \ --subject='Re: [PATCH v3 2/5] MIPS: Stack unwinding while on IRQ stack' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).