Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jan 1999 23:19:28 +0100
From:      Tor.Egge@fast.no
To:        ken@plutotech.com
Cc:        smp@FreeBSD.ORG
Subject:   Re: interesting panic, probably PCI code
Message-ID:  <199901282219.XAA09140@midten.fast.no>
In-Reply-To: Your message of "Wed, 27 Jan 1999 21:39:00 -0700 (MST)"
References:  <199901280439.VAA00675@panzer.plutotech.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> I got this panic tonight while trying to add USB support to my kernel.  The
> code I'm running is from just before the -current/-stable split, probably
> about January 19th.

The mp table does not have an entry for the USB host controller, and is
thus broken.

By applying the following (untested) patch, the panic might be avoided,
but interrupt delivery will probably not work for that device until
the mp table is corrected or a workaround is found.

---------
Index: apic_ipl.s
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/apic_ipl.s,v
retrieving revision 1.22
diff -u -r1.22 apic_ipl.s
--- apic_ipl.s	1998/09/06 22:41:41	1.22
+++ apic_ipl.s	1998/10/10 19:30:38
@@ -246,12 +246,14 @@
 	shll	$4, %ecx
 	movl	CNAME(int_to_apicintpin) + 8(%ecx), %edx
 	movl	CNAME(int_to_apicintpin) + 12(%ecx), %ecx
+	testl	%edx, %edx
+	jz	1f
 
 	movl	%ecx, (%edx)		/* write the target register index */
 	movl	16(%edx), %eax		/* read the target register data */
 	andl	$~IOART_INTMASK, %eax	/* clear mask bit */
 	movl	%eax, 16(%edx)		/* write the APIC register data */
-
+1:	
 	IMASK_UNLOCK			/* exit critical reg */
 	popfl				/* restore old state of EI flag */
 	ret
@@ -276,12 +278,14 @@
 	shll	$4, %ecx
 	movl	CNAME(int_to_apicintpin) + 8(%ecx), %edx
 	movl	CNAME(int_to_apicintpin) + 12(%ecx), %ecx
+	testl	%edx, %edx
+	jz	1f
 
 	movl	%ecx, (%edx)		/* write the target register index */
 	movl	16(%edx), %eax		/* read the target register data */
 	orl	$IOART_INTMASK, %eax	/* set mask bit */
 	movl	%eax, 16(%edx)		/* write the APIC register data */
-
+1:	
 	IMASK_UNLOCK			/* exit critical reg */
 	popfl				/* restore old state of EI flag */
 	ret
---------


- Tor Egge

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901282219.XAA09140>