View | Details | Raw Unified | Return to bug 256505
Collapse All | Expand All

(-)b/emulators/virtualbox-ose-kmod/Makefile (+1 lines)
Lines 2-7 Link Here
2
2
3
PORTNAME=	virtualbox-ose
3
PORTNAME=	virtualbox-ose
4
PORTVERSION=	6.1.22
4
PORTVERSION=	6.1.22
5
PORTREVISION=	1
5
CATEGORIES=	emulators
6
CATEGORIES=	emulators
6
MASTER_SITES=	https://download.virtualbox.org/virtualbox/${PORTVERSION}/
7
MASTER_SITES=	https://download.virtualbox.org/virtualbox/${PORTVERSION}/
7
PKGNAMESUFFIX=	-kmod
8
PKGNAMESUFFIX=	-kmod
(-)b/emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_VBoxNetFlt_freebsd_VBoxNetFlt-freebsd.c (-21 / +38 lines)
Lines 1-4 Link Here
1
--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c.orig	2021-01-07 15:41:28 UTC
1
--- src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c.orig	2021-04-28 16:31:54 UTC
2
+++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c
2
+++ src/VBox/HostDrivers/VBoxNetFlt/freebsd/VBoxNetFlt-freebsd.c
3
@@ -52,6 +52,7 @@
3
@@ -52,6 +52,7 @@
4
 #include <net/if_dl.h>
4
 #include <net/if_dl.h>
Lines 16-22 Link Here
16
 
16
 
17
 static int vboxnetflt_modevent(struct module *, int, void *);
17
 static int vboxnetflt_modevent(struct module *, int, void *);
18
 static ng_constructor_t    ng_vboxnetflt_constructor;
18
 static ng_constructor_t    ng_vboxnetflt_constructor;
19
@@ -361,7 +363,14 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i
19
@@ -149,6 +151,7 @@ NETGRAPH_INIT(vboxnetflt, &ng_vboxnetflt_typestruct);
20
  */
21
 MODULE_VERSION(vboxnetflt, 1);
22
 MODULE_DEPEND(ng_vboxnetflt, vboxdrv, 1, 1, 1);
23
+MODULE_DEPEND(ng_vboxnetflt, ng_ether, 1, 1, 1);
24
 
25
 /**
26
  * The (common) global data.
27
@@ -181,8 +184,6 @@ static int vboxnetflt_modevent(struct module *pMod, in
28
                 printf("vboxNetFltInitGlobalsAndIdc failed %d\n", rc);
29
                 return RTErrConvertToErrno(rc);
30
             }
31
-            /* No MODULE_VERSION in ng_ether so we can't MODULE_DEPEND it */
32
-            kern_kldload(curthread, "ng_ether", NULL);
33
             break;
34
 
35
         case MOD_UNLOAD:
36
@@ -361,7 +362,14 @@ static int ng_vboxnetflt_rcvdata(hook_p hook, item_p i
20
     {
37
     {
21
         if (mtag != NULL || !fActive)
38
         if (mtag != NULL || !fActive)
22
         {
39
         {
Lines 31-37 Link Here
31
             if (fActive)
48
             if (fActive)
32
                 vboxNetFltRelease(pThis, true /*fBusy*/);
49
                 vboxNetFltRelease(pThis, true /*fBusy*/);
33
             VBOXCURVNET_RESTORE();
50
             VBOXCURVNET_RESTORE();
34
@@ -436,6 +445,8 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
51
@@ -436,6 +444,8 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
35
     struct ifnet *ifp = pThis->u.s.ifp;
52
     struct ifnet *ifp = pThis->u.s.ifp;
36
     unsigned int cSegs = 0;
53
     unsigned int cSegs = 0;
37
     bool fDropIt = false, fActive;
54
     bool fDropIt = false, fActive;
Lines 40-46 Link Here
40
     PINTNETSG pSG;
57
     PINTNETSG pSG;
41
 
58
 
42
     VBOXCURVNET_SET(ifp->if_vnet);
59
     VBOXCURVNET_SET(ifp->if_vnet);
43
@@ -448,6 +459,19 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
60
@@ -448,6 +458,19 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
44
         if (m == NULL)
61
         if (m == NULL)
45
             break;
62
             break;
46
 
63
 
Lines 60-66 Link Here
60
         for (m0 = m; m0 != NULL; m0 = m0->m_next)
77
         for (m0 = m; m0 != NULL; m0 = m0->m_next)
61
             if (m0->m_len > 0)
78
             if (m0->m_len > 0)
62
                 cSegs++;
79
                 cSegs++;
63
@@ -462,10 +486,39 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
80
@@ -462,10 +485,39 @@ static void vboxNetFltFreeBSDinput(void *arg, int pend
64
         vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0);
81
         vboxNetFltFreeBSDMBufToSG(pThis, m, pSG, cSegs, 0);
65
         fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, NULL /* pvIf */, pSG, INTNETTRUNKDIR_WIRE);
82
         fDropIt = pThis->pSwitchPort->pfnRecv(pThis->pSwitchPort, NULL /* pvIf */, pSG, INTNETTRUNKDIR_WIRE);
66
         RTMemTmpFree(pSG);
83
         RTMemTmpFree(pSG);
Lines 101-107 Link Here
101
     }
118
     }
102
     vboxNetFltRelease(pThis, true /* fBusy */);
119
     vboxNetFltRelease(pThis, true /* fBusy */);
103
     VBOXCURVNET_RESTORE();
120
     VBOXCURVNET_RESTORE();
104
@@ -521,6 +574,7 @@ static void vboxNetFltFreeBSDoutput(void *arg, int pen
121
@@ -521,6 +573,7 @@ static void vboxNetFltFreeBSDoutput(void *arg, int pen
105
  */
122
  */
106
 int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst)
123
 int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *pvIfData, PINTNETSG pSG, uint32_t fDst)
107
 {
124
 {
Lines 109-115 Link Here
109
     NOREF(pvIfData);
126
     NOREF(pvIfData);
110
 
127
 
111
     void (*input_f)(struct ifnet *, struct mbuf *);
128
     void (*input_f)(struct ifnet *, struct mbuf *);
112
@@ -537,10 +591,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
129
@@ -537,10 +590,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
113
     {
130
     {
114
         m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
131
         m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
115
         if (m == NULL)
132
         if (m == NULL)
Lines 126-132 Link Here
126
 
143
 
127
         m->m_flags |= M_PKTHDR;
144
         m->m_flags |= M_PKTHDR;
128
         ether_output_frame(ifp, m);
145
         ether_output_frame(ifp, m);
129
@@ -550,10 +610,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
146
@@ -550,10 +609,16 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
130
     {
147
     {
131
         m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
148
         m = vboxNetFltFreeBSDSGMBufFromSG(pThis, pSG);
132
         if (m == NULL)
149
         if (m == NULL)
Lines 143-149 Link Here
143
         /*
160
         /*
144
          * Delivering packets to the host will be captured by the
161
          * Delivering packets to the host will be captured by the
145
          * input hook. Tag the packet with a mbuf tag so that we
162
          * input hook. Tag the packet with a mbuf tag so that we
146
@@ -564,6 +630,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
163
@@ -564,6 +629,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
147
         if (mtag == NULL)
164
         if (mtag == NULL)
148
         {
165
         {
149
             m_freem(m);
166
             m_freem(m);
Lines 151-157 Link Here
151
             return VERR_NO_MEMORY;
168
             return VERR_NO_MEMORY;
152
         }
169
         }
153
 
170
 
154
@@ -574,6 +641,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
171
@@ -574,6 +640,7 @@ int vboxNetFltPortOsXmit(PVBOXNETFLTINS pThis, void *p
155
         ifp->if_input(ifp, m);
172
         ifp->if_input(ifp, m);
156
     }
173
     }
157
     VBOXCURVNET_RESTORE();
174
     VBOXCURVNET_RESTORE();
Lines 159-165 Link Here
159
     return VINF_SUCCESS;
176
     return VINF_SUCCESS;
160
 }
177
 }
161
 
178
 
162
@@ -586,6 +654,7 @@ static bool vboxNetFltFreeBsdIsPromiscuous(PVBOXNETFLT
179
@@ -586,6 +653,7 @@ static bool vboxNetFltFreeBsdIsPromiscuous(PVBOXNETFLT
163
 
180
 
164
 int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, void *pvContext)
181
 int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, void *pvContext)
165
 {
182
 {
Lines 167-173 Link Here
167
     char nam[NG_NODESIZ];
184
     char nam[NG_NODESIZ];
168
     struct ifnet *ifp;
185
     struct ifnet *ifp;
169
     node_p node;
186
     node_p node;
170
@@ -594,7 +663,10 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
187
@@ -594,7 +662,10 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
171
     NOREF(pvContext);
188
     NOREF(pvContext);
172
     ifp = ifunit(pThis->szName);
189
     ifp = ifunit(pThis->szName);
173
     if (ifp == NULL)
190
     if (ifp == NULL)
Lines 178-184 Link Here
178
 
195
 
179
     /* Create a new netgraph node for this instance */
196
     /* Create a new netgraph node for this instance */
180
     if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0)
197
     if (ng_make_node_common(&ng_vboxnetflt_typestruct, &node) != 0)
181
@@ -638,12 +710,14 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
198
@@ -638,12 +709,14 @@ int vboxNetFltOsInitInstance(PVBOXNETFLTINS pThis, voi
182
         vboxNetFltRelease(pThis, true /*fBusy*/);
199
         vboxNetFltRelease(pThis, true /*fBusy*/);
183
     }
200
     }
184
     VBOXCURVNET_RESTORE();
201
     VBOXCURVNET_RESTORE();
Lines 193-199 Link Here
193
     struct ifnet *ifp, *ifp0;
210
     struct ifnet *ifp, *ifp0;
194
 
211
 
195
     ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *);
212
     ifp = ASMAtomicUoReadPtrT(&pThis->u.s.ifp, struct ifnet *);
196
@@ -660,6 +734,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi
213
@@ -660,6 +733,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi
197
         pThis->u.s.node = NULL;
214
         pThis->u.s.node = NULL;
198
     }
215
     }
199
     VBOXCURVNET_RESTORE();
216
     VBOXCURVNET_RESTORE();
Lines 201-207 Link Here
201
 
218
 
202
     if (ifp0 != NULL)
219
     if (ifp0 != NULL)
203
     {
220
     {
204
@@ -672,6 +747,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi
221
@@ -672,6 +746,7 @@ bool vboxNetFltOsMaybeRediscovered(PVBOXNETFLTINS pThi
205
 
222
 
206
 void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
223
 void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
207
 {
224
 {
Lines 209-215 Link Here
209
 
226
 
210
     taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin);
227
     taskqueue_drain(taskqueue_fast, &pThis->u.s.tskin);
211
     taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout);
228
     taskqueue_drain(taskqueue_fast, &pThis->u.s.tskout);
212
@@ -684,6 +760,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
229
@@ -684,6 +759,7 @@ void vboxNetFltOsDeleteInstance(PVBOXNETFLTINS pThis)
213
         ng_rmnode_self(pThis->u.s.node);
230
         ng_rmnode_self(pThis->u.s.node);
214
     VBOXCURVNET_RESTORE();
231
     VBOXCURVNET_RESTORE();
215
     pThis->u.s.node = NULL;
232
     pThis->u.s.node = NULL;
Lines 217-223 Link Here
217
 }
234
 }
218
 
235
 
219
 int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
236
 int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
220
@@ -697,6 +774,7 @@ int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
237
@@ -697,6 +773,7 @@ int vboxNetFltOsPreInitInstance(PVBOXNETFLTINS pThis)
221
 
238
 
222
 void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, bool fActive)
239
 void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, bool fActive)
223
 {
240
 {
Lines 225-231 Link Here
225
     struct ifnet *ifp;
242
     struct ifnet *ifp;
226
     struct ifreq ifreq;
243
     struct ifreq ifreq;
227
     int error;
244
     int error;
228
@@ -730,7 +808,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
245
@@ -730,7 +807,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
229
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
246
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
230
             sizeof(struct ngm_connect), M_NOWAIT);
247
             sizeof(struct ngm_connect), M_NOWAIT);
231
         if (msg == NULL)
248
         if (msg == NULL)
Lines 236-242 Link Here
236
         con = (struct ngm_connect *)msg->data;
253
         con = (struct ngm_connect *)msg->data;
237
         snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", ifp->if_xname);
254
         snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:", ifp->if_xname);
238
         strlcpy(con->ourhook, "lower", NG_HOOKSIZ);
255
         strlcpy(con->ourhook, "lower", NG_HOOKSIZ);
239
@@ -744,7 +825,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
256
@@ -744,7 +824,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
240
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
257
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_CONNECT,
241
             sizeof(struct ngm_connect), M_NOWAIT);
258
             sizeof(struct ngm_connect), M_NOWAIT);
242
         if (msg == NULL)
259
         if (msg == NULL)
Lines 247-253 Link Here
247
         con = (struct ngm_connect *)msg->data;
264
         con = (struct ngm_connect *)msg->data;
248
         snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:",
265
         snprintf(con->path, NG_PATHSIZ, "vboxnetflt_%s:",
249
             ifp->if_xname);
266
             ifp->if_xname);
250
@@ -767,7 +851,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
267
@@ -767,7 +850,10 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
251
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
268
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
252
             sizeof(struct ngm_rmhook), M_NOWAIT);
269
             sizeof(struct ngm_rmhook), M_NOWAIT);
253
         if (msg == NULL)
270
         if (msg == NULL)
Lines 258-264 Link Here
258
         rm = (struct ngm_rmhook *)msg->data;
275
         rm = (struct ngm_rmhook *)msg->data;
259
         strlcpy(rm->ourhook, "input", NG_HOOKSIZ);
276
         strlcpy(rm->ourhook, "input", NG_HOOKSIZ);
260
         NG_SEND_MSG_PATH(error, node, msg, path, 0);
277
         NG_SEND_MSG_PATH(error, node, msg, path, 0);
261
@@ -778,12 +865,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
278
@@ -778,12 +864,16 @@ void vboxNetFltPortOsSetActive(PVBOXNETFLTINS pThis, b
262
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
279
         NG_MKMESSAGE(msg, NGM_GENERIC_COOKIE, NGM_RMHOOK,
263
             sizeof(struct ngm_rmhook), M_NOWAIT);
280
             sizeof(struct ngm_rmhook), M_NOWAIT);
264
         if (msg == NULL)
281
         if (msg == NULL)

Return to bug 256505