summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/dev
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2010-08-17 20:05:09 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2010-08-17 20:05:09 +0000
commitc025e04f827666d3d2d579ceaacd0fbe443e7575 (patch)
treef2bd939e4e625cb9dc6d9e3b6719ebf4d7de7793 /sys/arch/sparc/dev
parent9e07d7675fc18fe87d568aed72e35af91dba0231 (diff)
Make sure fast trap handlers correctly invoke soft interrupts by marking
them explicitely pending before triggering the softintr; I am ashamed I did not notice this when changing the soft interrupt code 18 months ago. Noticed by claudio@ and beck@
Diffstat (limited to 'sys/arch/sparc/dev')
-rw-r--r--sys/arch/sparc/dev/fd.c4
-rw-r--r--sys/arch/sparc/dev/fdvar.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/sparc/dev/fd.c b/sys/arch/sparc/dev/fd.c
index ed0e33b6252..e92e7732f5f 100644
--- a/sys/arch/sparc/dev/fd.c
+++ b/sys/arch/sparc/dev/fd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fd.c,v 1.72 2010/07/10 19:32:24 miod Exp $ */
+/* $OpenBSD: fd.c,v 1.73 2010/08/17 20:05:06 miod Exp $ */
/* $NetBSD: fd.c,v 1.51 1997/05/24 20:16:19 pk Exp $ */
/*-
@@ -139,7 +139,6 @@ enum fdc_state {
/* software state, per controller */
struct fdc_softc {
struct device sc_dev; /* boilerplate */
- void *sc_sih; /* softintr cookie */
caddr_t sc_reg;
struct fd_softc *sc_fd[4]; /* pointers to children */
TAILQ_HEAD(drivehead, fd_softc) sc_drives;
@@ -164,6 +163,7 @@ struct fdc_softc {
#define sc_nstat sc_io.fdcio_nstat
#define sc_status sc_io.fdcio_status
#define sc_hih sc_io.fdcio_ih
+#define sc_sih sc_io.fdcio_sih
struct timeout fdctimeout_to;
struct timeout fdcpseudointr_to;
};
diff --git a/sys/arch/sparc/dev/fdvar.h b/sys/arch/sparc/dev/fdvar.h
index 533078ac72e..50e6d2f7492 100644
--- a/sys/arch/sparc/dev/fdvar.h
+++ b/sys/arch/sparc/dev/fdvar.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: fdvar.h,v 1.8 2006/08/17 01:37:41 krw Exp $ */
+/* $OpenBSD: fdvar.h,v 1.9 2010/08/17 20:05:06 miod Exp $ */
/*
* $NetBSD: fdvar.h,v 1.5 1996/12/08 23:40:34 pk Exp $
*
@@ -62,6 +62,7 @@ struct fdcio {
int fdcio_nstat; /* # of valid status bytes */
struct intrhand fdcio_ih;
+ void *fdcio_sih; /* softintr cookie */
};
#endif /* _LOCORE */