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