diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2016-04-14 00:19:58 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2016-04-14 00:19:58 +0000 |
commit | e1de02a05fec85775dadbb3fcb3b2a10723a78d1 (patch) | |
tree | 9032ab4875b6f476fc56d07aaeebb3fbf5849325 /sys | |
parent | f41fd69162730c7ec88d4bcc6fd86d62b27aad11 (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.c | 10 |
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 * |