summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2019-03-22 02:18:31 +0000
committerdlg <dlg@openbsd.org>2019-03-22 02:18:31 +0000
commit3701157f7fbcfa2e93c00143d5881c75a25f535a (patch)
tree0bf9617e24170d8aecab20998a29d0d628f50ec2
parentTest that "calendar -A 0" on a Friday doesn't include weekend events. (diff)
downloadwireguard-openbsd-3701157f7fbcfa2e93c00143d5881c75a25f535a.tar.xz
wireguard-openbsd-3701157f7fbcfa2e93c00143d5881c75a25f535a.zip
don't blindly complete admin queue entries
there's a bit in the flags field that the firmware sets when the command is done, so check to decide if the command is ready to be completed. this in turn makes ixl_iff work. "oh" jmatthew@
-rw-r--r--sys/dev/pci/if_ixl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/pci/if_ixl.c b/sys/dev/pci/if_ixl.c
index 6a3a5fe11d5..e8bcc4be3de 100644
--- a/sys/dev/pci/if_ixl.c
+++ b/sys/dev/pci/if_ixl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ixl.c,v 1.28 2019/03/21 12:30:58 dlg Exp $ */
+/* $OpenBSD: if_ixl.c,v 1.29 2019/03/22 02:18:31 dlg Exp $ */
/*
* Copyright (c) 2013-2015, Intel Corporation
@@ -3025,6 +3025,8 @@ ixl_atq_done(struct ixl_softc *sc)
do {
slot = &atq[cons];
+ if (!ISSET(slot->iaq_flags, htole16(IXL_AQ_DD)))
+ break;
iatq = (struct ixl_atq *)slot->iaq_cookie;
iatq->iatq_desc = *slot;