summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2004-10-27 21:23:02 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2004-10-27 21:23:02 +0000
commit489bbdb168f13bfa3c0c9e42a537632034e4022e (patch)
tree92a79189c320ca75c015b951774d4b66c8d78b8c /sys
parentd865a8383a71b9335c4ce381656d041fdbc03dbf (diff)
Handle fatal errors from firmware (imported from iwi).
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/if_ipw.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/pci/if_ipw.c b/sys/dev/pci/if_ipw.c
index 8d5a8286e6c..f38bf7b7bfd 100644
--- a/sys/dev/pci/if_ipw.c
+++ b/sys/dev/pci/if_ipw.c
@@ -1,4 +1,4 @@
-/* $Id: if_ipw.c,v 1.13 2004/10/27 21:22:14 damien Exp $ */
+/* $Id: if_ipw.c,v 1.14 2004/10/27 21:23:01 damien Exp $ */
/*-
* Copyright (c) 2004
@@ -742,6 +742,11 @@ ipw_intr(void *arg)
wakeup(sc);
}
+ if (r & (IPW_INTR_FATAL_ERROR | IPW_INTR_PARITY_ERROR)) {
+ printf("%s: fatal error\n", sc->sc_dev.dv_xname);
+ ipw_stop(&sc->sc_ic.ic_if, 1);
+ }
+
/* Acknowledge interrupts */
CSR_WRITE_4(sc, IPW_CSR_INTR, r);