aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if_loop.c
diff options
context:
space:
mode:
authorMarko Zec <zec@FreeBSD.org>2009-05-23 21:43:44 +0000
committerMarko Zec <zec@FreeBSD.org>2009-05-23 21:43:44 +0000
commit37f17770e03aae332c6d186042e31ce8f226a0b5 (patch)
tree488633605f2f07bbba417ff74314596b3bb04cf2 /sys/net/if_loop.c
parent363b5a9a040879c3841a9e03cc185cfde35710ee (diff)
Notes
Diffstat (limited to 'sys/net/if_loop.c')
-rw-r--r--sys/net/if_loop.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/net/if_loop.c b/sys/net/if_loop.c
index 3319ed89379f..cc9251b1a114 100644
--- a/sys/net/if_loop.c
+++ b/sys/net/if_loop.c
@@ -111,9 +111,14 @@ static int vnet_loif_iattach(const void *);
struct ifnet *loif; /* Used externally */
#endif
+#ifdef VIMAGE
+MALLOC_DEFINE(M_LO_CLONER, "lo_cloner", "lo_cloner");
+#endif
+
#ifndef VIMAGE_GLOBALS
static const vnet_modinfo_t vnet_loif_modinfo = {
.vmi_id = VNET_MOD_LOIF,
+ .vmi_dependson = VNET_MOD_IF_CLONE,
.vmi_name = "loif",
.vmi_iattach = vnet_loif_iattach
};
@@ -167,7 +172,15 @@ static int vnet_loif_iattach(const void *unused __unused)
INIT_VNET_NET(curvnet);
V_loif = NULL;
+
+#ifdef VIMAGE
+ V_lo_cloner = malloc(sizeof(*V_lo_cloner), M_LO_CLONER,
+ M_WAITOK | M_ZERO);
+ bcopy(&lo_cloner, V_lo_cloner, sizeof(*V_lo_cloner));
+ if_clone_attach(V_lo_cloner);
+#else
if_clone_attach(&lo_cloner);
+#endif
return (0);
}