summaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/netisr.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys/net/netisr.c b/sys/net/netisr.c
index 34d87270f93..bc0310fb347 100644
--- a/sys/net/netisr.c
+++ b/sys/net/netisr.c
@@ -35,7 +35,8 @@ void *netisr_intr;
void
netintr(void *unused) /* ARGSUSED */
{
- int n;
+ int n, t = 0;
+
while ((n = netisr) != 0) {
atomic_clearbits_int(&netisr, n);
@@ -71,13 +72,16 @@ netintr(void *unused) /* ARGSUSED */
if (n & (1 << NETISR_BT))
btintr();
#endif
+
+ t |= n;
+ }
+
#if NPFSYNC > 0
- if (n & (1 << NETISR_PFSYNC))
- pfsyncintr();
+ if (t & (1 << NETISR_PFSYNC))
+ pfsyncintr();
#endif
- if (n & (1 << NETISR_TX))
- nettxintr();
- }
+ if (t & (1 << NETISR_TX))
+ nettxintr();
}
void