summaryrefslogtreecommitdiffstats
path: root/sys/netnatm/natm.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
committerjlemon <jlemon@FreeBSD.org>2003-03-04 23:19:55 +0000
commit04e28d5a816573d1300b4591306a8785d3ace29c (patch)
treef304f726e8973253d3e8a87e56119fec0276a61c /sys/netnatm/natm.c
parent45fcac94f475f1d18d50dde4f72eb51ee4abddcc (diff)
downloadFreeBSD-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/netnatm/natm.c')
-rw-r--r--sys/netnatm/natm.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/sys/netnatm/natm.c b/sys/netnatm/natm.c
index e0535b6..2df3c22 100644
--- a/sys/netnatm/natm.c
+++ b/sys/netnatm/natm.c
@@ -698,21 +698,12 @@ done:
*/
void
-natmintr()
-
+natmintr(struct mbuf *m)
{
int s;
- struct mbuf *m;
struct socket *so;
struct natmpcb *npcb;
-next:
- s = splimp();
- IF_DEQUEUE(&natmintrq, m);
- splx(s);
- if (m == NULL)
- return;
-
#ifdef DIAGNOSTIC
if ((m->m_flags & M_PKTHDR) == 0)
panic("natmintr no HDR");
@@ -729,12 +720,12 @@ next:
m_freem(m);
if (npcb->npcb_inq == 0)
FREE(npcb, M_PCB); /* done! */
- goto next;
+ return;
}
if (npcb->npcb_flags & NPCB_FREE) {
m_freem(m); /* drop */
- goto next;
+ return;
}
#ifdef NEED_TO_RESTORE_IFP
@@ -760,21 +751,8 @@ m->m_pkthdr.rcvif = NULL; /* null it out to be safe */
#endif
m_freem(m);
}
-
- goto next;
}
-#if defined(__FreeBSD__)
-static void
-netisr_natm_setup(void *dummy __unused)
-{
-
- register_netisr(NETISR_NATM, natmintr);
-}
-SYSINIT(natm_setup, SI_SUB_CPU, SI_ORDER_ANY, netisr_natm_setup, NULL);
-#endif
-
-
/*
* natm0_sysctl: not used, but here in case we want to add something
* later...
OpenPOWER on IntegriCloud