summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2016-04-14 00:19:58 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2016-04-14 00:19:58 +0000
commite1de02a05fec85775dadbb3fcb3b2a10723a78d1 (patch)
tree9032ab4875b6f476fc56d07aaeebb3fbf5849325 /sys
parentf41fd69162730c7ec88d4bcc6fd86d62b27aad11 (diff)
check both the admin and io queue for completions in the interrupt handler
this means we'll notice io completions.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ic/nvme.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/dev/ic/nvme.c b/sys/dev/ic/nvme.c
index d3f8b142fff..0e3dc93cdc4 100644
--- a/sys/dev/ic/nvme.c
+++ b/sys/dev/ic/nvme.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: nvme.c,v 1.34 2016/04/14 00:12:51 dlg Exp $ */
+/* $OpenBSD: nvme.c,v 1.35 2016/04/14 00:19:57 dlg Exp $ */
/*
* Copyright (c) 2014 David Gwynne <dlg@openbsd.org>
@@ -1083,8 +1083,14 @@ int
nvme_intr(void *xsc)
{
struct nvme_softc *sc = xsc;
+ int rv = 0;
- return (nvme_q_complete(sc, sc->sc_admin_q));
+ if (nvme_q_complete(sc, sc->sc_q))
+ rv = 1;
+ if (nvme_q_complete(sc, sc->sc_admin_q))
+ rv = 1;
+
+ return (rv);
}
struct nvme_dmamem *