From 04e28d5a816573d1300b4591306a8785d3ace29c Mon Sep 17 00:00:00 2001 From: jlemon Date: Tue, 4 Mar 2003 23:19:55 +0000 Subject: 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 --- sys/net/if_atmsubr.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'sys/net/if_atmsubr.c') diff --git a/sys/net/if_atmsubr.c b/sys/net/if_atmsubr.c index 78ab13c..782ed88 100644 --- a/sys/net/if_atmsubr.c +++ b/sys/net/if_atmsubr.c @@ -212,7 +212,7 @@ atm_input(ifp, ah, m, rxhand) struct mbuf *m; void *rxhand; { - struct ifqueue *inq; + int isr; u_int16_t etype = ETHERTYPE_IP; /* default */ int s; @@ -231,8 +231,7 @@ atm_input(ifp, ah, m, rxhand) s = splimp(); /* in case 2 atm cards @ diff lvls */ npcb->npcb_inq++; /* count # in queue */ splx(s); - schednetisr(NETISR_NATM); - inq = &natmintrq; + isr = NETISR_NATM; m->m_pkthdr.rcvif = rxhand; /* XXX: overload */ #else printf("atm_input: NATM detected but not configured in kernel\n"); @@ -267,14 +266,12 @@ atm_input(ifp, ah, m, rxhand) switch (etype) { #ifdef INET case ETHERTYPE_IP: - schednetisr(NETISR_IP); - inq = &ipintrq; + isr = NETISR_IP; break; #endif #ifdef INET6 case ETHERTYPE_IPV6: - schednetisr(NETISR_IPV6); - inq = &ip6intrq; + isr = NETISR_IPV6; break; #endif default: @@ -282,8 +279,7 @@ atm_input(ifp, ah, m, rxhand) return; } } - - (void) IF_HANDOFF(inq, m, NULL); + netisr_dispatch(isr, m); } /* -- cgit v1.1