diff options
Diffstat (limited to 'sys/net/if.c')
-rw-r--r-- | sys/net/if.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/net/if.c b/sys/net/if.c index 417f8cb..5cc135b 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -162,6 +162,7 @@ static int ifconf(u_long, caddr_t); static void if_freemulti(struct ifmultiaddr *); static void if_init(void *); static void if_grow(void); +static void if_input_default(struct ifnet *, struct mbuf *); static void if_route(struct ifnet *, int flag, int fam); static int if_setflag(struct ifnet *, int, int, int *, int); static int if_transmit(struct ifnet *ifp, struct mbuf *m); @@ -665,7 +666,9 @@ if_attach_internal(struct ifnet *ifp, int vmove) ifp->if_transmit = if_transmit; ifp->if_qflush = if_qflush; } - + if (ifp->if_input == NULL) + ifp->if_input = if_input_default; + if (!vmove) { #ifdef MAC mac_ifnet_create(ifp); @@ -3570,6 +3573,13 @@ if_transmit(struct ifnet *ifp, struct mbuf *m) return (error); } +static void +if_input_default(struct ifnet *ifp __unused, struct mbuf *m) +{ + + m_freem(m); +} + int if_handoff(struct ifqueue *ifq, struct mbuf *m, struct ifnet *ifp, int adjust) { |