lo: Use new KPI to create the first loop interface

While here remove a pointless static local variable lo_cloner.

No functional change intended.

Reviewed by:	kp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D45728
This commit is contained in:
Zhenlei Huang 2024-06-26 18:00:37 +08:00
parent 8502c68d29
commit 2cb7605a24

View File

@ -93,13 +93,9 @@ static int looutput(struct ifnet *ifp, struct mbuf *m,
const struct sockaddr *dst, struct route *ro);
VNET_DEFINE(struct ifnet *, loif); /* Used externally */
#ifdef VIMAGE
VNET_DEFINE_STATIC(struct if_clone *, lo_cloner);
#define V_lo_cloner VNET(lo_cloner)
#endif
static struct if_clone *lo_cloner;
static const char loname[] = "lo";
static int
@ -141,8 +137,6 @@ lo_clone_create(struct if_clone *ifc, char *name, size_t len,
ifp->if_hwassist = LO_CSUM_FEATURES | LO_CSUM_FEATURES6;
if_attach(ifp);
bpfattach(ifp, DLT_NULL, sizeof(u_int32_t));
if (V_loif == NULL)
V_loif = ifp;
*ifpp = ifp;
return (0);
@ -156,12 +150,9 @@ vnet_loif_init(const void *unused __unused)
.destroy_f = lo_clone_destroy,
.flags = IFC_F_AUTOUNIT,
};
lo_cloner = ifc_attach_cloner(loname, &req);
#ifdef VIMAGE
V_lo_cloner = lo_cloner;
#endif
V_lo_cloner = ifc_attach_cloner(loname, &req);
struct ifc_data ifd = { .unit = 0 };
ifc_create_ifp(loname, &ifd, NULL);
ifc_create_ifp(loname, &ifd, &V_loif);
}
VNET_SYSINIT(vnet_loif_init, SI_SUB_PSEUDO, SI_ORDER_ANY,
vnet_loif_init, NULL);