summaryrefslogtreecommitdiffstats
path: root/sys/net/if_stf.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net/if_stf.c')
-rw-r--r--sys/net/if_stf.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c
index 6b3834d..8ae33de 100644
--- a/sys/net/if_stf.c
+++ b/sys/net/if_stf.c
@@ -484,7 +484,7 @@ in_stf_input(m, va_alist)
struct ip *ip;
struct ip6_hdr *ip6;
u_int8_t otos, itos;
- int s, isr;
+ int len, isr;
struct ifqueue *ifq = NULL;
struct ifnet *ifp;
va_list ap;
@@ -581,18 +581,12 @@ in_stf_input(m, va_alist)
ifq = &ip6intrq;
isr = NETISR_IPV6;
- s = splimp();
- if (IF_QFULL(ifq)) {
- IF_DROP(ifq); /* update statistics */
- m_freem(m);
- splx(s);
+ len = m->m_pkthdr.len;
+ if (! IF_HANDOFF(ifq, m, NULL))
return;
- }
- IF_ENQUEUE(ifq, m);
schednetisr(isr);
ifp->if_ipackets++;
- ifp->if_ibytes += m->m_pkthdr.len;
- splx(s);
+ ifp->if_ibytes += len;
}
/* ARGSUSED */
OpenPOWER on IntegriCloud