mpc83xx_restart() buggy

4 messages, 4 authors, 2006-12-30 · open the first message on its own page

mpc83xx_restart() buggy

From: Tjernlund <hidden>
Date: 2006-12-28 01:07:22

mpc83xx_restart() uses ioremap(), which doesn't like
beeing called while in IRQ context. 

Calling mpc83xx_restart() in IRQ context yields OOPS
which calls mpc83xx_restart() again and the loop never
termintes.

 Jocke 

Re: mpc83xx_restart() buggy

From: Kumar Gala <hidden>
Date: 2006-12-29 22:45:14

On Dec 27, 2006, at 6:45 PM, Tjernlund wrote:
mpc83xx_restart() uses ioremap(), which doesn't like
beeing called while in IRQ context.

Calling mpc83xx_restart() in IRQ context yields OOPS
which calls mpc83xx_restart() again and the loop never
termintes.
This is interesting, I know I've seen restart work properly w/o an  
oops.  How are you causing the restart?

- k

Re: mpc83xx_restart() buggy

From: Scott Wood <hidden>
Date: 2006-12-29 23:04:38

Kumar Gala wrote:
On Dec 27, 2006, at 6:45 PM, Tjernlund wrote:
quoted
mpc83xx_restart() uses ioremap(), which doesn't like
beeing called while in IRQ context.

Calling mpc83xx_restart() in IRQ context yields OOPS
which calls mpc83xx_restart() again and the loop never
termintes.
This is interesting, I know I've seen restart work properly w/o an  
oops.  How are you causing the restart?
sysrq-b triggers it, as probably does crashing from an interrupt handler 
with panic_timeout nonzero.  You'll need CONFIG_DEBUG_SPINLOCK_SLEEP 
turned on, of course.

-Scott

RE: mpc83xx_restart() buggy

From: Joakim Tjernlund <hidden>
Date: 2006-12-30 10:49:22

-----Original Message-----
From: 
linuxppc-dev-bounces+joakim.tjernlund=transmode.se@ozlabs.org 
[mailto:linuxppc-dev-bounces+joakim.tjernlund=transmode.se@ozl
abs.org] On Behalf Of Scott Wood
Sent: den 30 december 2006 00:04
To: Kumar Gala
Cc: Tjernlund; 'linuxppc-dev'
Subject: Re: mpc83xx_restart() buggy

Kumar Gala wrote:
quoted
On Dec 27, 2006, at 6:45 PM, Tjernlund wrote:
quoted
mpc83xx_restart() uses ioremap(), which doesn't like
beeing called while in IRQ context.

Calling mpc83xx_restart() in IRQ context yields OOPS
which calls mpc83xx_restart() again and the loop never
termintes.
This is interesting, I know I've seen restart work properly w/o an  
oops.  How are you causing the restart?
sysrq-b triggers it, as probably does crashing from an 
interrupt handler 
with panic_timeout nonzero.  You'll need CONFIG_DEBUG_SPINLOCK_SLEEP 
turned on, of course.
For me it was http://ozlabs.org/pipermail/linuxppc-dev/2006-December/029414.html

ucc_geth_timeout() is buggy and so is ucc_geth_start_xmit(), needs to 
return NETDEV_TX_BUSY or NETDEV_TX_OK.

 Jocke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help