All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack
@ 2014-01-17  4:25 Kevin Hao
  2014-01-21 16:14 ` Guenter Roeck
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Hao @ 2014-01-17  4:25 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Guenter Roeck; +Cc: linuxppc

Guenter Roeck has got the following call trace on a p2020 board:
  Kernel stack overflow in process eb3e5a00, r1=eb79df90
  CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
  task: eb3e5a00 ti: c0616000 task.ti: ef440000
  NIP: c003a420 LR: c003a410 CTR: c0017518
  REGS: eb79dee0 TRAP: 0901   Not tainted (3.13.0-rc8-juniper-00146-g19eca00)
  MSR: 00029000 <CE,EE,ME>  CR: 24008444  XER: 00000000
  GPR00: c003a410 eb79df90 eb3e5a00 00000000 eb05d900 00000001 65d87646 00000000
  GPR08: 00000000 020b8000 00000000 00000000 44008442
  NIP [c003a420] __do_softirq+0x94/0x1ec
  LR [c003a410] __do_softirq+0x84/0x1ec
  Call Trace:
  [eb79df90] [c003a410] __do_softirq+0x84/0x1ec (unreliable)
  [eb79dfe0] [c003a970] irq_exit+0xbc/0xc8
  [eb79dff0] [c000cc1c] call_do_irq+0x24/0x3c
  [ef441f20] [c00046a8] do_IRQ+0x8c/0xf8
  [ef441f40] [c000e7f4] ret_from_except+0x0/0x18
  --- Exception: 501 at 0xfcda524
      LR = 0x10024900
  Instruction dump:
  7c781b78 3b40000a 3a73b040 543c0024 3a800000 3b3913a0 7ef5bb78 48201bf9
  5463103a 7d3b182e 7e89b92e 7c008146 <3ba00000> 7e7e9b78 48000014 57fff87f
  Kernel panic - not syncing: kernel stack overflow
  CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
  Call Trace:

The reason is that we have used the wrong register to calculate the
ksp_limit in commit cbc9565ee826 (powerpc: Remove ksp_limit on ppc64).
Just fix it.

As suggested by Benjamin Herrenschmidt, also add the C prototype of the
function in the comment in order to avoid such kind of errors in the
future.

Cc: stable@vger.kernel.org # 3.12
Reported-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Kevin Hao <haokexin@gmail.com>
---
 arch/powerpc/kernel/misc_32.S | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index e47d268727a4..7025c30a139a 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -57,11 +57,14 @@ _GLOBAL(call_do_softirq)
 	mtlr	r0
 	blr
 
+/*
+ * void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp);
+ */
 _GLOBAL(call_do_irq)
 	mflr	r0
 	stw	r0,4(r1)
 	lwz	r10,THREAD+KSP_LIMIT(r2)
-	addi	r11,r3,THREAD_INFO_GAP
+	addi	r11,r4,THREAD_INFO_GAP
 	stwu	r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r4)
 	mr	r1,r4
 	stw	r10,8(r1)
-- 
1.8.3.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack
  2014-01-17  4:25 [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack Kevin Hao
@ 2014-01-21 16:14 ` Guenter Roeck
  2014-01-21 21:48   ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 5+ messages in thread
From: Guenter Roeck @ 2014-01-21 16:14 UTC (permalink / raw)
  To: Kevin Hao; +Cc: linuxppc

On Fri, Jan 17, 2014 at 12:25:28PM +0800, Kevin Hao wrote:
> Guenter Roeck has got the following call trace on a p2020 board:
>   Kernel stack overflow in process eb3e5a00, r1=eb79df90
>   CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
>   task: eb3e5a00 ti: c0616000 task.ti: ef440000
>   NIP: c003a420 LR: c003a410 CTR: c0017518
>   REGS: eb79dee0 TRAP: 0901   Not tainted (3.13.0-rc8-juniper-00146-g19eca00)
>   MSR: 00029000 <CE,EE,ME>  CR: 24008444  XER: 00000000
>   GPR00: c003a410 eb79df90 eb3e5a00 00000000 eb05d900 00000001 65d87646 00000000
>   GPR08: 00000000 020b8000 00000000 00000000 44008442
>   NIP [c003a420] __do_softirq+0x94/0x1ec
>   LR [c003a410] __do_softirq+0x84/0x1ec
>   Call Trace:
>   [eb79df90] [c003a410] __do_softirq+0x84/0x1ec (unreliable)
>   [eb79dfe0] [c003a970] irq_exit+0xbc/0xc8
>   [eb79dff0] [c000cc1c] call_do_irq+0x24/0x3c
>   [ef441f20] [c00046a8] do_IRQ+0x8c/0xf8
>   [ef441f40] [c000e7f4] ret_from_except+0x0/0x18
>   --- Exception: 501 at 0xfcda524
>       LR = 0x10024900
>   Instruction dump:
>   7c781b78 3b40000a 3a73b040 543c0024 3a800000 3b3913a0 7ef5bb78 48201bf9
>   5463103a 7d3b182e 7e89b92e 7c008146 <3ba00000> 7e7e9b78 48000014 57fff87f
>   Kernel panic - not syncing: kernel stack overflow
>   CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
>   Call Trace:
> 
> The reason is that we have used the wrong register to calculate the
> ksp_limit in commit cbc9565ee826 (powerpc: Remove ksp_limit on ppc64).
> Just fix it.
> 
> As suggested by Benjamin Herrenschmidt, also add the C prototype of the
> function in the comment in order to avoid such kind of errors in the
> future.
> 
Was this patch accepted, or are there any problems with it ?
I didn't see any comments, and it still isn't upstream nor in linux-next.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack
  2014-01-21 16:14 ` Guenter Roeck
@ 2014-01-21 21:48   ` Benjamin Herrenschmidt
  2014-02-12  5:51     ` Kevin Hao
  0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2014-01-21 21:48 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: linuxppc, Kevin Hao

On Tue, 2014-01-21 at 08:14 -0800, Guenter Roeck wrote:
> On Fri, Jan 17, 2014 at 12:25:28PM +0800, Kevin Hao wrote:
> > Guenter Roeck has got the following call trace on a p2020 board:
> >   Kernel stack overflow in process eb3e5a00, r1=eb79df90
> >   CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
> >   task: eb3e5a00 ti: c0616000 task.ti: ef440000
> >   NIP: c003a420 LR: c003a410 CTR: c0017518
> >   REGS: eb79dee0 TRAP: 0901   Not tainted (3.13.0-rc8-juniper-00146-g19eca00)
> >   MSR: 00029000 <CE,EE,ME>  CR: 24008444  XER: 00000000
> >   GPR00: c003a410 eb79df90 eb3e5a00 00000000 eb05d900 00000001 65d87646 00000000
> >   GPR08: 00000000 020b8000 00000000 00000000 44008442
> >   NIP [c003a420] __do_softirq+0x94/0x1ec
> >   LR [c003a410] __do_softirq+0x84/0x1ec
> >   Call Trace:
> >   [eb79df90] [c003a410] __do_softirq+0x84/0x1ec (unreliable)
> >   [eb79dfe0] [c003a970] irq_exit+0xbc/0xc8
> >   [eb79dff0] [c000cc1c] call_do_irq+0x24/0x3c
> >   [ef441f20] [c00046a8] do_IRQ+0x8c/0xf8
> >   [ef441f40] [c000e7f4] ret_from_except+0x0/0x18
> >   --- Exception: 501 at 0xfcda524
> >       LR = 0x10024900
> >   Instruction dump:
> >   7c781b78 3b40000a 3a73b040 543c0024 3a800000 3b3913a0 7ef5bb78 48201bf9
> >   5463103a 7d3b182e 7e89b92e 7c008146 <3ba00000> 7e7e9b78 48000014 57fff87f
> >   Kernel panic - not syncing: kernel stack overflow
> >   CPU: 0 PID: 2838 Comm: ssh Not tainted 3.13.0-rc8-juniper-00146-g19eca00 #4
> >   Call Trace:
> > 
> > The reason is that we have used the wrong register to calculate the
> > ksp_limit in commit cbc9565ee826 (powerpc: Remove ksp_limit on ppc64).
> > Just fix it.
> > 
> > As suggested by Benjamin Herrenschmidt, also add the C prototype of the
> > function in the comment in order to avoid such kind of errors in the
> > future.
> > 
> Was this patch accepted, or are there any problems with it ?
> I didn't see any comments, and it still isn't upstream nor in linux-next.

It will be merged when I come back from vacation. It was too late for
3.13 so I'll send it to Linus next week and will CC -stable.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack
  2014-01-21 21:48   ` Benjamin Herrenschmidt
@ 2014-02-12  5:51     ` Kevin Hao
  2014-02-12  9:39       ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 5+ messages in thread
From: Kevin Hao @ 2014-02-12  5:51 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: linuxppc, Guenter Roeck

[-- Attachment #1: Type: text/plain, Size: 318 bytes --]

On Wed, Jan 22, 2014 at 08:48:48AM +1100, Benjamin Herrenschmidt wrote:
> It will be merged when I come back from vacation. It was too late for
> 3.13 so I'll send it to Linus next week and will CC -stable.

Hi Ben,

Any reason why this is still not merged yet?

Thanks,
Kevin
> 
> Cheers,
> Ben.
> 
> 

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack
  2014-02-12  5:51     ` Kevin Hao
@ 2014-02-12  9:39       ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2014-02-12  9:39 UTC (permalink / raw)
  To: Kevin Hao; +Cc: linuxppc, Guenter Roeck

On Wed, 2014-02-12 at 13:51 +0800, Kevin Hao wrote:
> On Wed, Jan 22, 2014 at 08:48:48AM +1100, Benjamin Herrenschmidt wrote:
> > It will be merged when I come back from vacation. It was too late for
> > 3.13 so I'll send it to Linus next week and will CC -stable.
> 
> Hi Ben,
> 
> Any reason why this is still not merged yet?

No other than for some reason I missed it in patchwork when I did my
shopping from it yesterday.

I've added it to a bundle so I won't forget on my next round.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-02-12  9:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-17  4:25 [PATCH] powerpc: set the correct ksp_limit on ppc32 when switching to irq stack Kevin Hao
2014-01-21 16:14 ` Guenter Roeck
2014-01-21 21:48   ` Benjamin Herrenschmidt
2014-02-12  5:51     ` Kevin Hao
2014-02-12  9:39       ` Benjamin Herrenschmidt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.