* PPC Linux painic problem!
@ 2004-04-26 1:28 jeffy
2004-04-26 7:20 ` Marius Groeger
0 siblings, 1 reply; 4+ messages in thread
From: jeffy @ 2004-04-26 1:28 UTC (permalink / raw)
To: linuxppc-embedded@lists.linuxppc
Hi all,
I hit on a problem about PPC Linux version 2.4.4 on a MPC855T board.
The kernel can start up ok normally, but when another PC continous sending UDP packets to it(about 8Mbps) when kernel is starting up, the kernel failed start up and printf the following messages:
.................................
.................................
.................................
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
Oops: kernel access of bad area, sig: 11
NIP: C0095828 XER: C000057F LR: C0097804 SP: C01C7CA0 REGS: c01c7bf0 TRAP: 0300
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: BF80F66F, DSISR: 0000000B
TASK = c01c6000[1] 'swapper' Last syscall: 120
last math 00000000 last altivec 00000000
GPR00: 00CC2222 C01C7CA0 C01C6000 C1F713F0 C0A82C60 C0A82C5D 00000000 C1DC3C00
GPR08: 00000002 00000000 00000200 BF80F5F3 FFFFFFFF 1004FCEC 01FDD000 007FFF0D
GPR16: 00000000 00000001 007FFF00 FFFFFFFF 00001032 001C7D40 00000000 C0002870
GPR24: 00000180 C00FD5C0 00000800 C1DC3C00 C0A82C5D 00000000 C1F713F0 C0A82C60
Call backtrace:
00000001 C0097804 C008D720 C0013BE4 C00028A0 C000EE10 C0106494
C01066EC C0106EA4 C00FE78C C00FE830 C00023CC C0004D68
Kernel panic: Aiee, killing interrupt handler!
In interrupt handler - not syncing
Rebooting in 180 seconds..
What's the problems? Is it a bug?
Best Regards!
Jeffy Guo
Bocom Digital Crop. Shanghai, China.
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PPC Linux painic problem!
2004-04-26 1:28 PPC Linux painic problem! jeffy
@ 2004-04-26 7:20 ` Marius Groeger
2004-04-26 8:25 ` Pantelis Antoniou
2004-04-26 10:45 ` Alex Zeffertt
0 siblings, 2 replies; 4+ messages in thread
From: Marius Groeger @ 2004-04-26 7:20 UTC (permalink / raw)
To: jeffy; +Cc: linuxppc-embedded@lists.linuxppc
Jeffy,
On Mon, 26 Apr 2004, jeffy wrote:
>
> Hi all,
> I hit on a problem about PPC Linux version 2.4.4 on a MPC855T board.
> The kernel can start up ok normally, but when another PC
> continous sending UDP packets to it(about 8Mbps) when kernel is
> starting up, the kernel failed start up and printf the following
> messages:
This is just a VERY wild guess: check the driver source
(arch/ppc/8xx_io/fec.c in your case) and make sure the driver only forwards
received packets to the IP stack when the interface is configured "UP".
There once was a similar problem with the 826x driver.
Another reason could be that the FEC channel is not properly shut down by
the firmware/bootloader before entering the kernel.
Next time try to add more information about your system, especially about
the kernel and bootloader version you are using.
Regards,
Marius
--
Marius Groeger <mgroeger@sysgo.com> Project Manager
SYSGO AG Embedded and Real-Time Software
Voice: +49 6136 9948 0 FAX: +49 6136 9948 10
www.sysgo.com | www.elinos.com | www.osek.de | www.imerva.com
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PPC Linux painic problem!
2004-04-26 7:20 ` Marius Groeger
@ 2004-04-26 8:25 ` Pantelis Antoniou
2004-04-26 10:45 ` Alex Zeffertt
1 sibling, 0 replies; 4+ messages in thread
From: Pantelis Antoniou @ 2004-04-26 8:25 UTC (permalink / raw)
To: Marius Groeger; +Cc: jeffy, linuxppc-embedded@lists.linuxppc
Marius Groeger wrote:
>Jeffy,
>
>On Mon, 26 Apr 2004, jeffy wrote:
>
>
>>Hi all,
>> I hit on a problem about PPC Linux version 2.4.4 on a MPC855T board.
>> The kernel can start up ok normally, but when another PC
>>continous sending UDP packets to it(about 8Mbps) when kernel is
>>starting up, the kernel failed start up and printf the following
>>messages:
>>
>
>This is just a VERY wild guess: check the driver source
>(arch/ppc/8xx_io/fec.c in your case) and make sure the driver only forwards
>received packets to the IP stack when the interface is configured "UP".
>There once was a similar problem with the 826x driver.
>
>Another reason could be that the FEC channel is not properly shut down by
>the firmware/bootloader before entering the kernel.
>
>Next time try to add more information about your system, especially about
>the kernel and bootloader version you are using.
>
>Regards,
>Marius
>
>--
>Marius Groeger <mgroeger@sysgo.com> Project Manager
>SYSGO AG Embedded and Real-Time Software
>Voice: +49 6136 9948 0 FAX: +49 6136 9948 10
>www.sysgo.com | www.elinos.com | www.osek.de | www.imerva.com
>
>
>
>
>
>
If you use u-boot make sure you update to the latest version.
There was a bug with the fec not properly halting and then
crashing the kernel when network traffic was present very early.
Regards
Pantelis
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: PPC Linux painic problem!
2004-04-26 7:20 ` Marius Groeger
2004-04-26 8:25 ` Pantelis Antoniou
@ 2004-04-26 10:45 ` Alex Zeffertt
1 sibling, 0 replies; 4+ messages in thread
From: Alex Zeffertt @ 2004-04-26 10:45 UTC (permalink / raw)
To: Marius Groeger; +Cc: jeffy, linuxppc-embedded@lists.linuxppc
On Mon, 2004-04-26 at 08:20, Marius Groeger wrote:
> Jeffy,
>
> On Mon, 26 Apr 2004, jeffy wrote:
>
> >
> > Hi all,
> > I hit on a problem about PPC Linux version 2.4.4 on a MPC855T board.
> > The kernel can start up ok normally, but when another PC
> > continous sending UDP packets to it(about 8Mbps) when kernel is
> > starting up, the kernel failed start up and printf the following
> > messages:
>
> This is just a VERY wild guess: check the driver source
> (arch/ppc/8xx_io/fec.c in your case) and make sure the driver only forwards
> received packets to the IP stack when the interface is configured "UP".
> There once was a similar problem with the 826x driver.
>
> Another reason could be that the FEC channel is not properly shut down by
> the firmware/bootloader before entering the kernel.
>
> Next time try to add more information about your system, especially about
> the kernel and bootloader version you are using.
>
> Regards,
> Marius
Hi all,
I think Marius' wild guess is correct! Until 5 minutes ago I had the
same problem as Jeffy. My fix is to disable rx interrupts until
fec_enet_open() is called. See the patch below. Thanks Marius.
BTW, the patch may not apply because of other changes to fec.c, so
here's a description:
1st block: add int allow_rx to fec_enet_private struct
2nd block: set allow_rx in fec_enet_open()
3rd block: unset allow_rx in fec_enet_stop()
4th block: in fec_restart() only set IMASK[RXF] if allow_rx set
Alex
===================================================================
RCS file: /newcvs/ppc-linux/kernel/arch/ppc/8xx_io/fec.c,v
retrieving revision 1.41
diff -u -r1.41 fec.c
--- fec.c 22 Apr 2004 13:32:01 -0000 1.41
+++ fec.c 26 Apr 2004 10:34:28 -0000
@@ -220,6 +220,7 @@
struct net_device_stats stats;
uint tx_full;
spinlock_t lock;
+ int allow_rx;
#ifdef CONFIG_USE_MDIO
uint phy_id;
@@ -1932,6 +1933,7 @@
{
struct fec_enet_private *fep = dev->priv;
+ fep->allow_rx = 1;
/* I should reset the ring buffers here, but I don't yet know
* a simple way to do that.
*/
@@ -1971,11 +1973,12 @@
static int
fec_enet_close(struct net_device *dev)
{
+ struct fec_enet_private *fep = dev->priv;
/* Don't know what to do yet.
*/
netif_stop_queue(dev);
fec_stop(dev);
-
+ fep->allow_rx = 0;
return 0;
}
@@ -2661,7 +2664,7 @@
/* Enable interrupts we wish to service.
*/
- fecp->fec_imask = ( FEC_ENET_TXF | FEC_ENET_RXF | FEC_ENET_MII );
+ fecp->fec_imask = ( FEC_ENET_TXF | ((fep->allow_rx)?FEC_ENET_RXF:0) | FEC_ENET_MII );
/* And last, enable the transmit and receive processing.
*/
** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-04-26 10:45 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-26 1:28 PPC Linux painic problem! jeffy
2004-04-26 7:20 ` Marius Groeger
2004-04-26 8:25 ` Pantelis Antoniou
2004-04-26 10:45 ` Alex Zeffertt
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).