Subject: Re: repeatable kernel page fault trap in fwohci
To: Christopher Tribo <t1345@hopi.dtcc.edu>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: current-users
Date: 04/01/2003 17:34:49
This is a multipart MIME message.
--==_Exmh_5685216699580
Content-Type: text/plain; charset=us-ascii
t1345@hopi.dtcc.edu said:
> kernel : page fault trap code=0 Stopped in pid 2.1 (fwohci0) at
> sbp2_abort+0x1a: cmpl 0x44(%eax), %ecx
This looks familiar.
I've told James about the broken sbp2_free() a while ago.
For now, I can only offer the appended patch.
best regards
Matthias
--==_Exmh_5685216699580
Content-Type: text/plain ; name="fwpatch"; charset=us-ascii
Content-Description: fwpatch
Content-Disposition: attachment; filename="fwpatch"
Index: sbp2.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ieee1394/sbp2.c,v
retrieving revision 1.16
diff -u -r1.16 sbp2.c
--- sbp2.c 2003/03/07 20:18:57 1.16
+++ sbp2.c 2003/04/01 15:26:38
@@ -669,12 +669,15 @@
while (CIRCLEQ_FIRST(&sbp2->orbs) != (void *)&sbp2->orbs) {
orb = CIRCLEQ_FIRST(&sbp2->orbs);
(void)sbp2_abort(orb);
+ CIRCLEQ_REMOVE(&sbp2->orbs, orb, orb_list);
sbp2_free_orb(orb);
}
+#if 0
orb = CIRCLEQ_FIRST(&sbp2->orbs);
(void)sbp2_abort(orb);
CIRCLEQ_REMOVE(&sbp2->orbs, orb, orb_list);
sbp2_free_orb(orb);
+#endif
while (TAILQ_FIRST(&sbp2->luns) != NULL) {
lun = TAILQ_FIRST(&sbp2->luns);
--==_Exmh_5685216699580--