summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormikeb <mikeb@openbsd.org>2007-12-11 23:08:09 +0000
committermikeb <mikeb@openbsd.org>2007-12-11 23:08:09 +0000
commit23318c0e6d4217917a7e03ee358ca485514d1740 (patch)
tree9280c32bd6d6a8f45f13e22af3d5fc9d6cbe0fee
parentDon't store arguments and environment in the space reserved for stackgap on (diff)
downloadwireguard-openbsd-23318c0e6d4217917a7e03ee358ca485514d1740.tar.xz
wireguard-openbsd-23318c0e6d4217917a7e03ee358ca485514d1740.zip
Fix check for pending interrupts as some other device is causing
the status register to change. From form@. ok jsg
-rw-r--r--sys/dev/pci/if_nfe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/pci/if_nfe.c b/sys/dev/pci/if_nfe.c
index 3e0b7dee10c..6c37f349dea 100644
--- a/sys/dev/pci/if_nfe.c
+++ b/sys/dev/pci/if_nfe.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_nfe.c,v 1.74 2007/12/05 08:30:33 jsg Exp $ */
+/* $OpenBSD: if_nfe.c,v 1.75 2007/12/11 23:08:09 mikeb Exp $ */
/*-
* Copyright (c) 2006, 2007 Damien Bergamini <damien.bergamini@free.fr>
@@ -478,7 +478,7 @@ nfe_intr(void *arg)
struct ifnet *ifp = &sc->sc_arpcom.ac_if;
uint32_t r;
- if ((r = NFE_READ(sc, NFE_IRQ_STATUS)) == 0)
+ if ((r = NFE_READ(sc, NFE_IRQ_STATUS) & NFE_IRQ_WANTED) == 0)
return 0; /* not for us */
NFE_WRITE(sc, NFE_IRQ_STATUS, r);