svn commit: r280257 - stable/9/sys/net
Andrey V. Elsukov
ae at FreeBSD.org
Thu Mar 19 13:33:17 UTC 2015
Author: ae
Date: Thu Mar 19 13:33:15 2015
New Revision: 280257
URL: https://svnweb.freebsd.org/changeset/base/280257
Log:
MFC r279920:
Add if_input_default() method, that will be used for if_input
initialization, when no input method specified before if_attach().
This prevents panics when if_input() method called directly e.g.
from bpf(4) code.
PR: 192426
Modified:
stable/9/sys/net/if.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/net/ (props changed)
Modified: stable/9/sys/net/if.c
==============================================================================
--- stable/9/sys/net/if.c Thu Mar 19 13:10:09 2015 (r280256)
+++ stable/9/sys/net/if.c Thu Mar 19 13:33:15 2015 (r280257)
@@ -158,6 +158,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);
@@ -681,7 +682,9 @@ if_attach_internal(struct ifnet *ifp, in
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);
@@ -3481,6 +3484,13 @@ if_transmit(struct ifnet *ifp, struct mb
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)
{
More information about the svn-src-stable-9
mailing list