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)