diff options
author | Bernhard Froehlich <decke@FreeBSD.org> | 2012-04-30 17:18:04 +0000 |
---|---|---|
committer | Bernhard Froehlich <decke@FreeBSD.org> | 2012-04-30 17:18:04 +0000 |
commit | d3d5da97e35a7394288617e3e72e44be82538050 (patch) | |
tree | 7cbd40cb0dbb1fcf3240e3072346da2e02a60c16 /emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c | |
parent | b02edda6a88fc73fc71db8b40250ec0d784d973f (diff) | |
download | freebsd-ports-d3d5da97e35a7394288617e3e72e44be82538050.zip |
- Update to 4.1.14
- Remove debugging fprintf in MachineImpl.cpp to fix build with GCC 4.6 [1]
- Add support for VLAN interfaces to NetIfList() [2]
- Add support for VIMAGE to VBoxNetAdp [3]
- Fix a kernel crash on FreeBSD 10-CURRENT hosts with VIMAGE enabled when a VM is powered off [3]
Submitted by: Andriy Gapon <avg at FreeBSD.org> [1]
Landon J Fuller <landonf at plausible dot coop> [2]
Mikolaj Golub <trociny at freebsd.org> [3]
Sponsored by: Plausible Labs Cooperative, Inc [2]
Diffstat (limited to 'emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c')
-rw-r--r-- | emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c new file mode 100644 index 000000000000..189755c1b242 --- /dev/null +++ b/emulators/virtualbox-ose-kmod/files/patch-src-VBox-HostDrivers-VBoxNetAdp-freebsd-VBoxNetAdp-freebsd.c @@ -0,0 +1,55 @@ +This patch adds support for VIMAGE to VBoxNetAdp and thus +also fixes that panic. + +Submitted by: Mikolaj Golub <trociny at freebsd.org> +--- src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c 2012-03-13 15:15:44.000000000 +0200 ++++ src/VBox/HostDrivers/VBoxNetAdp/freebsd/VBoxNetAdp-freebsd.c 2012-04-01 13:23:58.000000000 +0300 +@@ -68,6 +68,22 @@ + #define VBOXNETADP_OS_SPECFIC 1 + #include "../VBoxNetAdpInternal.h" + ++#if defined(__FreeBSD_version) && __FreeBSD_version >= 800500 ++# include <sys/jail.h> ++# include <net/vnet.h> ++ ++# define VBOXCURVNET_SET(arg) CURVNET_SET_QUIET(arg) ++# define VBOXCURVNET_SET_FROM_UCRED() VBOXCURVNET_SET(CRED_TO_VNET(curthread->td_ucred)) ++# define VBOXCURVNET_RESTORE() CURVNET_RESTORE() ++ ++#else /* !defined(__FreeBSD_version) || __FreeBSD_version < 800500 */ ++ ++# define VBOXCURVNET_SET(arg) ++# define VBOXCURVNET_SET_FROM_UCRED() ++# define VBOXCURVNET_RESTORE() ++ ++#endif /* !defined(__FreeBSD_version) || __FreeBSD_version < 800500 */ ++ + static int VBoxNetAdpFreeBSDCtrlioctl(struct cdev *, u_long, caddr_t, int flags, + struct thread *); + static struct cdevsw vboxnetadp_cdevsw = +@@ -260,6 +276,7 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis + { + struct ifnet *ifp; + ++ VBOXCURVNET_SET_FROM_UCRED(); + ifp = if_alloc(IFT_ETHER); + if (ifp == NULL) + return VERR_NO_MEMORY; +@@ -279,6 +296,7 @@ int vboxNetAdpOsCreate(PVBOXNETADP pThis + + strncpy(pThis->szName, ifp->if_xname, VBOXNETADP_MAX_NAME_LEN); + pThis->u.s.ifp = ifp; ++ VBOXCURVNET_RESTORE(); + return 0; + } + +@@ -286,7 +304,9 @@ void vboxNetAdpOsDestroy(PVBOXNETADP pTh + { + struct ifnet *ifp; + ++ VBOXCURVNET_SET(ifp->if_vnet); + ifp = pThis->u.s.ifp; + ether_ifdetach(ifp); + if_free(ifp); ++ VBOXCURVNET_RESTORE(); + } |