Subject: Re: Kernel panic on 2.0.2...
To: None <port-dreamcast@NetBSD.org>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-dreamcast
Date: 06/09/2005 01:54:55
hemi@puresimplicity.net wrote:

> Another crash, this time at 10BaseTX:
> 
> len 0x0 offset 0x3f0 mapsize 0x410

I guess mapsize should be 0x4010, right?
Is the offset always 0x3f0 on crash?

> panic: gaps_dmamap_sync: bad length
> Stopped at      netbsd:cpu_Debugger+0x6:       mov     r14, r15
> 
> trace:
> 
> cpu_Debugger() at netbsd:panic+0x98
> panic() at netbsd:gaps_dmamap_sync+0x1bc
> gaps_dmamap_sync() at netbsd:rtk_rxeof+0x334
> rtk_rxeof() at netbsd:rtk_intr+0x6c
> rtk_intr() at netbsd:sysasic_intr+0x48
> sysasic_intr() at netbsd:intc_intr+0x54
> intc_intr() at 0x8c00680
> () at 0
> 
> So maybe this problem isn't just a problem with 100BaseTX usage...

It might be caused by braindamaged realtech hardware ;-p
How about the attached patch?

Index: dev/ic/rtl81x9.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/rtl81x9.c,v
retrieving revision 1.51
diff -u -r1.51 rtl81x9.c
--- dev/ic/rtl81x9.c	27 Feb 2005 00:27:02 -0000	1.51
+++ dev/ic/rtl81x9.c	8 Jun 2005 16:51:47 -0000
@@ -1039,6 +1039,7 @@
 			break;
 
 		if ((rxstat & RTK_RXSTAT_RXOK) == 0 ||
+		    total_len < ETHER_MIN_LEN ||
 		    total_len > ETHER_MAX_LEN) {
 			ifp->if_ierrors++;
 

---
Izumi Tsutsui