Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Nov 2000 11:38:23 -0800 (PST)
From:      Matthew Jacob <mjacob@feral.com>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        alpha@FreeBSD.ORG, Andrew Gallatin <gallatin@cs.duke.edu>
Subject:   Re: Does your Alpha run a SMPng kernel?
Message-ID:  <Pine.BSF.4.21.0011101137500.83354-200000@beppo.feral.com>
In-Reply-To: <XFMail.001110113530.jhb@FreeBSD.org>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
> So you get some interrupts and then they stop.  On the x86 we do a
> disable/enable interrupt scheme for ISA interrupts by dinking with the PIC, so
> Matt's suggestion to use isa_enable_intr()/isa_disable_intr() might be needed
> actually.  (see hte INTREN() call in ithd_loop() in i386/isa/ithread.c) 
> Actually, it looks like we wait too long to enable the interrupt sources on the
> x86.  However, using the isa_enable/disable_intr() stuff that Matt suggested
> might help.


[-- Attachment #2 --]
Index: alpha/isa/isa.c
===================================================================
RCS file: /home/ncvs/src/sys/alpha/isa/isa.c,v
retrieving revision 1.23
diff -u -r1.23 isa.c
--- alpha/isa/isa.c	2000/11/01 18:40:41	1.23
+++ alpha/isa/isa.c	2000/11/10 19:37:32
@@ -71,6 +71,19 @@
 	splx(s);
 }
 
+static void
+extern_isa_intr_enable(int vector)
+{
+	isa_intr_enable((vector - 0x800) >> 4);
+}
+
+static void
+extern_isa_intr_disable(int vector)
+{
+	isa_intr_disable((vector - 0x800) >> 4);
+}
+
+
 intrmask_t
 isa_irq_pending(void)
 {
@@ -322,7 +335,7 @@
 			 0x800 + (irq->r_start << 4), isa_handle_intr, ii,
 			 ithread_priority(flags), flags, &ii->ih,
 			 &intrcnt[INTRCNT_ISA_IRQ + irq->r_start],
-			 NULL, NULL);
+			 extern_isa_intr_enable, extern_isa_intr_disable);
 	if (error) {
 		free(ii, M_DEVBUF);
 		return error;
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0011101137500.83354-200000>