Module Name:    src
Committed By:   simonb
Date:           Thu Apr 11 01:53:41 UTC 2019

Modified Files:
        src/sys/arch/evbmips/sbmips: sb1250_icu.c

Log Message:
Force all devices to IPL_VM.  For some reason serial interrupts at
SPL_SERIAL (SPL_HIGH) wedge.  Gets sbmips to ~multiuser (usually with
a bunch of segfaults).

Possibly a gross hack, but not sure the current code ever worked...


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/evbmips/sbmips/sb1250_icu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbmips/sbmips/sb1250_icu.c
diff -u src/sys/arch/evbmips/sbmips/sb1250_icu.c:1.2 src/sys/arch/evbmips/sbmips/sb1250_icu.c:1.3
--- src/sys/arch/evbmips/sbmips/sb1250_icu.c:1.2	Mon Jul 24 09:56:45 2017
+++ src/sys/arch/evbmips/sbmips/sb1250_icu.c	Thu Apr 11 01:53:41 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sb1250_icu.c,v 1.2 2017/07/24 09:56:45 mrg Exp $ */
+/* $NetBSD: sb1250_icu.c,v 1.3 2019/04/11 01:53:41 simonb Exp $ */
 
 /*
  * Copyright 2000, 2001
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sb1250_icu.c,v 1.2 2017/07/24 09:56:45 mrg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sb1250_icu.c,v 1.3 2019/04/11 01:53:41 simonb Exp $");
 
 #define	__INTR_PRIVATE
 
@@ -339,6 +339,16 @@ sb1250_intr_establish(u_int num, u_int i
 	struct sb1250_ihand * const ih = &sb1250_ihands[num];
 	const int s = splhigh();
 
+	/*
+	 * XXX simonb 
+	 * The swarm wedges hard on first serial interrupt when
+	 * we try to map IPL_SERIAL at a higher priority than
+	 * other device interrupts.  For now, just force all
+	 * devices to interrupt at IPL_VM.
+	 *
+	 */
+	ipl = IPL_VM;	/* XXX */
+
 	if (num >= K_INT_SOURCES)
 		panic("%s: invalid interrupt number (0x%x)", __func__, num);
 	if (ipl >= _IPL_N || ipl < IPL_VM)

Reply via email to