summaryrefslogtreecommitdiffstats
path: root/sys/net/intrq.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/intrq.c')
-rw-r--r--sys/net/intrq.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/net/intrq.c b/sys/net/intrq.c
index 5739385..d05176c 100644
--- a/sys/net/intrq.c
+++ b/sys/net/intrq.c
@@ -82,20 +82,13 @@ family_enqueue(family, m)
sa_family_t family;
struct mbuf *m;
{
- int entry, s;
+ int entry;
for (entry = 0; entry < sizeof queue / sizeof queue[0]; entry++)
if (queue[entry].family == family) {
if (queue[entry].present) {
- s = splimp();
- if (IF_QFULL(queue[entry].q)) {
- IF_DROP(queue[entry].q);
- splx(s);
- m_freem(m);
+ if (! IF_HANDOFF(queue[entry].q, m, NULL))
return ENOBUFS;
- }
- IF_ENQUEUE(queue[entry].q, m);
- splx(s);
schednetisr(queue[entry].isr);
return 0;
} else
OpenPOWER on IntegriCloud