Re: PCU panic on V240

Martin Husemann <[email protected]>
Newsgroups gmane.os.netbsd.ports.sparc64
Message-ID <[email protected]>
On Thu, Dec 05, 2013 at 08:00:06AM -0800, Matt Thomas wrote:
> cpu_softintr_p() is for softintrs
> cpu_intr_p() is for hardintrs.

Ah yes, and we get it right.
A kernel with attached patch does not fire any KASSERTs for me.

Martin
check.patch (text/plain, 1.1 KB)
Index: kern/kern_timeout.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kern_timeout.c,v
retrieving revision 1.47
diff -u -r1.47 kern_timeout.c
--- kern/kern_timeout.c	14 Sep 2013 20:53:48 -0000	1.47
+++ kern/kern_timeout.c	5 Dec 2013 16:37:38 -0000
@@ -697,6 +697,9 @@
 	int mpsafe, count, ticks, delta;
 	lwp_t *l;
 
+	KASSERT(cpu_softintr_p());
+	KASSERT(!cpu_intr_p());
+
 	l = curlwp;
 	KASSERT(l->l_cpu == curcpu());
 	cc = l->l_cpu->ci_data.cpu_callout;
Index: dev/pci/if_bge.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bge.c,v
retrieving revision 1.264
diff -u -r1.264 if_bge.c
--- dev/pci/if_bge.c	7 Nov 2013 18:45:32 -0000	1.264
+++ dev/pci/if_bge.c	5 Dec 2013 16:37:39 -0000
@@ -84,6 +84,7 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/callout.h>
+#include <sys/cpu.h>
 #include <sys/sockio.h>
 #include <sys/mbuf.h>
 #include <sys/malloc.h>
@@ -4570,6 +4571,8 @@
 	uint32_t statusword;
 	uint32_t intrmask = BGE_PCISTATE_INTR_NOT_ACTIVE;
 
+	KASSERT(cpu_intr_p());
+
 	sc = xsc;
 	ifp = &sc->ethercom.ec_if;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.