Date: Mon, 11 Nov 2002 20:47:23 +0100 From: Thomas Moestl <tmoestl@gmx.net> To: Gavin Atkinson <gavin@ury.york.ac.uk> Cc: sparc@freebsd.org Subject: Re: Reproducable panic on Ultra 5 Message-ID: <20021111194723.GB308@crow.dom2ip.de> In-Reply-To: <Pine.BSF.4.33.0211111859060.53225-100000@ury.york.ac.uk> References: <Pine.BSF.4.33.0211111859060.53225-100000@ury.york.ac.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Mon, 2002/11/11 at 19:16:03 +0000, Gavin Atkinson wrote:
>
> Hi,
>
> I can reliably panic my Ultra 5 by simply pressing the front power button.
>
> Power Failure Detected: Shutting down NOW.
> panic: blockable sleep lock (sleep mutex) process lock @ /usr/src/sys/kern/kern_shutdown.c:190
> cpuid = 0;
> Debugger("panic")
> Stopped at Debugger+0x1c: ta %xcc, 1
> db> trace
> panic() at panic+0x134
> witness_lock() at witness_lock+0x90
> _mtx_lock_flags() at _mtx_lock_flags+0x100
> shutdown_nice() at shutdown_nice+0x28
> psycho_powerfail() at psycho_powerfail+0x10
> intr_fast() at intr_fast+0x4c
> [...]
Can you please test whether the attached patch fixes that?
Thanks,
- Thomas
--
Thomas Moestl <tmoestl@gmx.net> http://www.tu-bs.de/~y0015675/
<tmm@FreeBSD.org> http://people.FreeBSD.org/~tmm/
PGP fingerprint: 1C97 A604 2BD0 E492 51D0 9C0F 1FE6 4F1D 419C 776C
[-- Attachment #2 --]
Index: sys/sparc64/pci/psycho.c
===================================================================
RCS file: /d/ncvs/src/sys/sparc64/pci/psycho.c,v
retrieving revision 1.17
diff -u -r1.17 psycho.c
--- sys/sparc64/pci/psycho.c 7 Nov 2002 16:07:46 -0000 1.17
+++ sys/sparc64/pci/psycho.c 11 Nov 2002 19:43:09 -0000
@@ -238,6 +239,12 @@
*
* We really should attach handlers for each.
*/
+#ifdef DEBUGGER_ON_POWERFAIL
+#define PSYCHO_PWRFAIL_INT_FLAGS INTR_FAST
+#else
+#define PSYCHO_PWRFAIL_INT_FLAGS 0
+#endif
+
#define OFW_PCI_TYPE "pci"
struct psycho_desc {
@@ -502,8 +509,8 @@
psycho_set_intr(sc, 1, dev, PSR_CE_INT_MAP, 0, psycho_ce);
psycho_set_intr(sc, 2, dev, PSR_PCIAERR_INT_MAP, INTR_FAST,
psycho_bus_a);
- psycho_set_intr(sc, 4, dev, PSR_POWER_INT_MAP, INTR_FAST,
- psycho_powerfail);
+ psycho_set_intr(sc, 4, dev, PSR_POWER_INT_MAP,
+ PSYCHO_PWRFAIL_INT_FLAGS, psycho_powerfail);
/* Psycho-specific initialization. */
if (sc->sc_mode == PSYCHO_MODE_PSYCHO) {
/*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021111194723.GB308>
