Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Oct 2021 10:57:06 GMT
From:      Guido Falsi <madpilot@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 32c43c505242 - main - emulators/virtualbox-ose*: Fix mistake in patch
Message-ID:  <202110251057.19PAv6hs059504@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by madpilot:

URL: https://cgit.FreeBSD.org/ports/commit/?id=32c43c505242463fb127845d0208ecf345124d13

commit 32c43c505242463fb127845d0208ecf345124d13
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2021-10-25 10:46:17 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2021-10-25 10:57:01 +0000

    emulators/virtualbox-ose*: Fix mistake in patch
    
    In the commit to update virtualbox-ose to 6.1.28 I made a one line
    mistake when reapplying a patch which failed to apply as is.
    
    In the patch
    files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
    I did not replay a part removing the line:
    
    rc = copyout(pHdr, pvUser, cbOut);
    
    which was rewriting some data that it should not. The correct code
    was anyway present after this leftover statement.
    
    This error made virtualbox log a lot of warnings about Bad CPU
    context like this:
    
    vboxdrv: Bad CPU context error at line 373 in SUPDrv-freebsd.c:
    ulCmd=0x2000568a: 0x282->0x287!
    
    These seem to be unharmful, but anyway indicate a problem that this
    commit fixes.
    
    Reported by:            Kevin Oberman <rkoberman@gmail.com> (via mailing list)
    Fixes:                  a3db7da59f9498
---
 emulators/virtualbox-ose-kmod/Makefile             |  1 +
 emulators/virtualbox-ose/Makefile                  | 25 ++++++++++----------
 ...ox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c | 27 +++++++++++-----------
 3 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/emulators/virtualbox-ose-kmod/Makefile b/emulators/virtualbox-ose-kmod/Makefile
index aff77a142130..8ffae3e1fb43 100644
--- a/emulators/virtualbox-ose-kmod/Makefile
+++ b/emulators/virtualbox-ose-kmod/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	virtualbox-ose
 PORTVERSION=	6.1.28
+PORTREVISION=	1
 CATEGORIES=	emulators
 MASTER_SITES=	https://download.virtualbox.org/virtualbox/${PORTVERSION}/
 PKGNAMESUFFIX=	-kmod
diff --git a/emulators/virtualbox-ose/Makefile b/emulators/virtualbox-ose/Makefile
index 55e26ad90f58..0b59cc614327 100644
--- a/emulators/virtualbox-ose/Makefile
+++ b/emulators/virtualbox-ose/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	virtualbox-ose
 PORTVERSION=	6.1.28
+PORTREVISION=   1
 CATEGORIES=	emulators
 MASTER_SITES=	https://download.virtualbox.org/virtualbox/${PORTVERSION}/
 DISTFILES=	VirtualBox-${PORTVERSION}${EXTRACT_SUFX} ${GUESTADDITIONS}
@@ -233,18 +234,18 @@ PLIST_SUB+=	PYTHON_PYCDIR=/ \
 CONFIGURE_ARGS+=	--with-openssl-dir="${OPENSSLBASE}"
 .endif
 
-pre-everything::
-.if ${ARCH} == "amd64"
-.if ${_ELF32} != yes
-	@${ECHO_MSG} 'Requires 32-bit runtime support in kernel.'
-	@${ECHO_MSG} 'Rebuild kernel with "options COMPAT_FREEBSD32" and reboot.'
-	@${FALSE}
-.elif !exists(/usr/lib32/libc.so)
-	@${ECHO_MSG} 'Requires 32-bit libraries installed under /usr/lib32.'
-	@${ECHO_MSG} 'Do: cd /usr/src; make build32 install32; service ldconfig restart'
-	@${FALSE}
-.endif
-.endif
+#pre-everything::
+#.if ${ARCH} == "amd64"
+#.if ${_ELF32} != yes
+#	@${ECHO_MSG} 'Requires 32-bit runtime support in kernel.'
+#	@${ECHO_MSG} 'Rebuild kernel with "options COMPAT_FREEBSD32" and reboot.'
+#	@${FALSE}
+#.elif !exists(/usr/lib32/libc.so)
+#	@${ECHO_MSG} 'Requires 32-bit libraries installed under /usr/lib32.'
+#	@${ECHO_MSG} 'Do: cd /usr/src; make build32 install32; service ldconfig restart'
+#	@${FALSE}
+#.endif
+#.endif
 
 post-patch:
 	@${ECHO_CMD} 'VBOX_PATH_APP_PRIVATE_ARCH = ${VBOX_DIR}' > \
diff --git a/emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c b/emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
index a7851ac20503..fb3a4470d560 100644
--- a/emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
+++ b/emulators/virtualbox-ose/files/patch-src_VBox_HostDrivers_Support_freebsd_SUPDrv-freebsd.c
@@ -50,11 +50,10 @@
              /*
               * Configure character devices. Add symbolic links for compatibility.
               */
-@@ -322,7 +340,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo
-     return VBoxDrvFreeBSDIOCtlSlow(pSession, ulCmd, pvData, pTd);
- }
+@@ -324,6 +342,45 @@ static int VBoxDrvFreeBSDIOCtl(struct cdev *pDev, u_lo
+ 
  
-+ /**
+ /**
 + * Alternative Device I/O Control entry point on hosts with SMAP support.
 + *
 + * @returns depends...
@@ -71,7 +70,7 @@
 +     * SMAP check.
 +     */
 +    RTCCUINTREG fSavedEfl = ASMAddFlags(X86_EFL_AC);
- 
++
 +    int rc = VBoxDrvFreeBSDIOCtl(pDev, ulCmd, pvData, fFile, pTd);
 +
 +#ifdef VBOX_WITH_EFLAGS_AC_SET_IN_VBOXDRV
@@ -93,10 +92,11 @@
 +}
 +
 +
- /**
++/**
   * Deal with the 'slow' I/O control requests.
   *
-@@ -372,11 +428,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+  * @returns 0 on success, appropriate errno on failure.
+@@ -372,11 +429,10 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
           */
          SUPREQHDR Hdr;
          pvUser = *(void **)pvData;
@@ -111,7 +111,7 @@
          }
          if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC))
          {
-@@ -401,13 +456,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+@@ -401,13 +457,12 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
              OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: failed to allocate buffer of %d bytes; ulCmd=%#lx\n", cbReq, ulCmd));
              return ENOMEM;
          }
@@ -129,10 +129,11 @@
          }
          if (Hdr.cbIn < cbReq)
              RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn);
-@@ -436,8 +490,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+@@ -435,9 +490,8 @@ static int VBoxDrvFreeBSDIOCtlSlow(PSUPDRVSESSION pSes
+                 OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: too much output! %#x > %#x; uCmd=%#lx!\n", cbOut, cbReq, ulCmd));
                  cbOut = cbReq;
              }
-             rc = copyout(pHdr, pvUser, cbOut);
+-            rc = copyout(pHdr, pvUser, cbOut);
 -            if (RT_UNLIKELY(rc))
 -                OSDBGPRINT(("VBoxDrvFreeBSDIOCtlSlow: copyout(%p,%p,%#x) -> %d; uCmd=%#lx!\n", pHdr, pvUser, cbOut, rc, ulCmd));
 +            if (RT_FAILURE(RTR0MemUserCopyTo(pvUser, pHdr, cbOut)))
@@ -150,10 +151,10 @@
  }
  
  
-@@ -623,20 +676,43 @@ int VBOXCALL    supdrvOSMsrProberModify(RTCPUID idCpu,
- 
+@@ -624,19 +677,43 @@ int VBOXCALL    supdrvOSMsrProberModify(RTCPUID idCpu,
  #endif /* SUPDRV_WITH_MSR_PROBER */
  
+ 
 +/**
 + * Check if the CPU has SMAP support.
 + */
@@ -165,7 +166,7 @@
 +#endif
 +    return false;
 +}
- 
++
 +
  SUPR0DECL(int) SUPR0PrintfV(const char *pszFormat, va_list va)
  {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110251057.19PAv6hs059504>