summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/net/if_gre.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index eae1f16..90f54c9 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -169,10 +169,16 @@ gre_clone_create(ifc, unit)
sc = malloc(sizeof(struct gre_softc), M_GRE, M_WAITOK | M_ZERO);
- if_initname(GRE2IFP(sc), ifc->ifc_name, unit);
+ GRE2IFP(sc) = if_alloc(IFT_TUNNEL);
+ if (GRE2IFP(sc) == NULL) {
+ free(sc, M_GRE);
+ return (ENOSPC);
+ }
+
GRE2IFP(sc)->if_softc = sc;
+ if_initname(GRE2IFP(sc), ifc->ifc_name, unit);
+
GRE2IFP(sc)->if_snd.ifq_maxlen = IFQ_MAXLEN;
- GRE2IFP(sc)->if_type = IFT_TUNNEL;
GRE2IFP(sc)->if_addrlen = 0;
GRE2IFP(sc)->if_hdrlen = 24; /* IP + GRE */
GRE2IFP(sc)->if_mtu = GREMTU;
OpenPOWER on IntegriCloud