Subject: Re: -current kernel panic last week
To: Bill Studenmund <wrstuden@netbsd.org>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 12/20/2004 14:35:27
Hello,

> The kernel booted, got to the point of scanning scsi busses, failed to 
> find any of the four SCSI devices, then reported:
> 
> panic Stuck interupt 00001000/00001000
Ah, that's the paranoia panic - it ext_intr() loops more than 16 times with the same IRQ asserted and you're running a DIAGNOSTICS kernel this will bite. 
The stuck interrupt is virq 12, which doesn't help us much, but Allen will surely be interested in this :)
Please do this to mapirq() in extintr.c:
	virq[irq] = v;
+	printf("mapping IRQ %d to virq %d\n",irq,v);
	return v;
so we can see which real IRQ is mapped to virq 12.

It may also help to update the macppc portion from cvs, there were a few commits in the last few days.
Hmm, I see a problem in the code - if we interrupt on a high ipl we can get stuck if there's a level-triggered IRQ with a lower priority - we'd endlessly mark it as pending but find it again in GC's level register on every loop. 
I think for now it would be best to just leave the loop instead of panic()ing.

good luck
Michael