diff options
| author | Luigi Rizzo <luigi@FreeBSD.org> | 2001-12-14 17:56:12 +0000 |
|---|---|---|
| committer | Luigi Rizzo <luigi@FreeBSD.org> | 2001-12-14 17:56:12 +0000 |
| commit | e4fc250c15768b8e203496ee908dedb37846ea4f (patch) | |
| tree | 4ea0e407bb3cf5815d6067507d1fdc39f76f58e6 /sys/kern/kern_intr.c | |
| parent | 99adc698c1889950d1ff2b747f52de00fd69a8b1 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_intr.c')
| -rw-r--r-- | sys/kern/kern_intr.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c index e873c6eca819..88868dc5e46e 100644 --- a/sys/kern/kern_intr.c +++ b/sys/kern/kern_intr.c @@ -623,7 +623,16 @@ swi_net(void *dummy) u_int bits; int i; +#ifdef DEVICE_POLLING + for (;;) { + int pollmore; +#endif bits = atomic_readandclear_int(&netisr); +#ifdef DEVICE_POLLING + if (bits == 0) + return; + pollmore = bits & (1 << NETISR_POLL); +#endif while ((i = ffs(bits)) != 0) { i--; if (netisrs[i] != NULL) @@ -632,6 +641,11 @@ swi_net(void *dummy) printf("swi_net: unregistered isr number: %d.\n", i); bits &= ~(1 << i); } +#ifdef DEVICE_POLLING + if (pollmore) + ether_pollmore(); + } +#endif } /* |
