diff options
author | jlemon <jlemon@FreeBSD.org> | 2003-03-04 23:19:55 +0000 |
---|---|---|
committer | jlemon <jlemon@FreeBSD.org> | 2003-03-04 23:19:55 +0000 |
commit | 04e28d5a816573d1300b4591306a8785d3ace29c (patch) | |
tree | f304f726e8973253d3e8a87e56119fec0276a61c /sys/net/if_loop.c | |
parent | 45fcac94f475f1d18d50dde4f72eb51ee4abddcc (diff) | |
download | FreeBSD-src-04e28d5a816573d1300b4591306a8785d3ace29c.zip FreeBSD-src-04e28d5a816573d1300b4591306a8785d3ace29c.tar.gz |
Update netisr handling; Each SWI now registers its queue, and all queue
drain routines are done by swi_net, which allows for better queue control
at some future point. Packets may also be directly dispatched to a netisr
instead of queued, this may be of interest at some installations, but
currently defaults to off.
Reviewed by: hsu, silby, jayanth, sam
Sponsored by: DARPA, NAI Labs
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r-- | sys/net/if_loop.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c index c753fdc..3e0a8c5 100644 --- a/sys/net/if_loop.c +++ b/sys/net/if_loop.c @@ -281,7 +281,6 @@ if_simloop(ifp, m, af, hlen) int hlen; { int isr; - struct ifqueue *inq = 0; KASSERT((m->m_flags & M_PKTHDR) != 0, ("if_simloop: no HDR")); m->m_pkthdr.rcvif = ifp; @@ -336,33 +335,28 @@ if_simloop(ifp, m, af, hlen) switch (af) { #ifdef INET case AF_INET: - inq = &ipintrq; isr = NETISR_IP; break; #endif #ifdef INET6 case AF_INET6: m->m_flags |= M_LOOP; - inq = &ip6intrq; isr = NETISR_IPV6; break; #endif #ifdef IPX case AF_IPX: - inq = &ipxintrq; isr = NETISR_IPX; break; #endif #ifdef NS case AF_NS: - inq = &nsintrq; isr = NETISR_NS; break; #endif #ifdef NETATALK case AF_APPLETALK: - inq = &atintrq2; - isr = NETISR_ATALK; + isr = NETISR_ATALK2; break; #endif default: @@ -372,8 +366,7 @@ if_simloop(ifp, m, af, hlen) } ifp->if_ipackets++; ifp->if_ibytes += m->m_pkthdr.len; - (void) IF_HANDOFF(inq, m, NULL); - schednetisr(isr); + netisr_dispatch(isr, m); return (0); } |