Fix a few panics in linuxulator + VIMAGE due to curvnet not being set.
This change affects only options VIMAGE builds. Reviewed by: julian MFC after: 3 days
This commit is contained in:
parent
e16947f83d
commit
a26f987f5d
@ -1085,6 +1085,7 @@ linprocfs_donetdev(PFS_FILL_ARGS)
|
||||
"bytes packets errs drop fifo frame compressed",
|
||||
"bytes packets errs drop fifo frame compressed");
|
||||
|
||||
CURVNET_SET(TD_TO_VNET(curthread));
|
||||
IFNET_RLOCK();
|
||||
TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
|
||||
linux_ifname(ifp, ifname, sizeof ifname);
|
||||
@ -1095,6 +1096,7 @@ linprocfs_donetdev(PFS_FILL_ARGS)
|
||||
0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL, 0UL);
|
||||
}
|
||||
IFNET_RUNLOCK();
|
||||
CURVNET_RESTORE();
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
@ -2104,6 +2104,7 @@ ifname_linux_to_bsd(struct thread *td, const char *lxname, char *bsdname)
|
||||
return (NULL);
|
||||
index = 0;
|
||||
is_eth = (len == 3 && !strncmp(lxname, "eth", len)) ? 1 : 0;
|
||||
CURVNET_SET(TD_TO_VNET(td));
|
||||
IFNET_RLOCK();
|
||||
TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
|
||||
/*
|
||||
@ -2117,6 +2118,7 @@ ifname_linux_to_bsd(struct thread *td, const char *lxname, char *bsdname)
|
||||
break;
|
||||
}
|
||||
IFNET_RUNLOCK();
|
||||
CURVNET_RESTORE();
|
||||
if (ifp != NULL)
|
||||
strlcpy(bsdname, ifp->if_xname, IFNAMSIZ);
|
||||
return (ifp);
|
||||
@ -2146,6 +2148,7 @@ linux_ifconf(struct thread *td, struct ifconf *uifc)
|
||||
|
||||
max_len = MAXPHYS - 1;
|
||||
|
||||
CURVNET_SET(TD_TO_VNET(td));
|
||||
/* handle the 'request buffer size' case */
|
||||
if (ifc.ifc_buf == PTROUT(NULL)) {
|
||||
ifc.ifc_len = 0;
|
||||
@ -2157,11 +2160,14 @@ linux_ifconf(struct thread *td, struct ifconf *uifc)
|
||||
}
|
||||
}
|
||||
error = copyout(&ifc, uifc, sizeof(ifc));
|
||||
CURVNET_RESTORE();
|
||||
return (error);
|
||||
}
|
||||
|
||||
if (ifc.ifc_len <= 0)
|
||||
if (ifc.ifc_len <= 0) {
|
||||
CURVNET_RESTORE();
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
again:
|
||||
/* Keep track of eth interfaces */
|
||||
@ -2223,6 +2229,7 @@ linux_ifconf(struct thread *td, struct ifconf *uifc)
|
||||
memcpy(PTRIN(ifc.ifc_buf), sbuf_data(sb), ifc.ifc_len);
|
||||
error = copyout(&ifc, uifc, sizeof(ifc));
|
||||
sbuf_delete(sb);
|
||||
CURVNET_RESTORE();
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user