Ben Smithurst wrote:

> A kernel from the latest sources gets a page fault in sched_ithd.  DDB says:
> 
> Stopped at:   sched_ithd+0x3c:        movl $0x01,0x14(%edi)
> 
> Any ideas what's wrong?

After poking around a bit with remote GDB, this seems to be caused by a
stray IRQ 7, since irq == 7, ir == ithds[irq] == NULL, ir->foo == BOOM.

The attached rather crude patch has "fixed" the problem for now, but
does anyone have any suggestions for a real fix?

-- 
Ben Smithurst / [EMAIL PROTECTED] / PGP: 0x99392F7D
Index: ithread.c
===================================================================
RCS file: /usr/cvs/src/sys/i386/isa/ithread.c,v
retrieving revision 1.1
diff -u -r1.1 ithread.c
--- ithread.c   2000/09/07 01:32:48     1.1
+++ ithread.c   2000/09/09 19:58:46
@@ -144,6 +144,9 @@
        }
 #endif
                
+       if (ir == NULL)
+               return;
+
        /*
         * Set it_need so that if the thread is already running but close
         * to done, it will do another go-round.  Then get the sched lock

Reply via email to