From nobody Mon Apr 28 23:29:39 2025 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zmfml5Q5dz5v3r7; Mon, 28 Apr 2025 23:29:43 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Received: from omta003.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "Client", Issuer "CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zmfml0mFtz3mg5; Mon, 28 Apr 2025 23:29:43 +0000 (UTC) (envelope-from cy.schubert@cschubert.com) Authentication-Results: mx1.freebsd.org; none Received: from shw-obgw-4003a.ext.cloudfilter.net ([10.228.9.183]) by cmsmtp with ESMTPS id 9PxsuvVaY9JM29XuwunjBl; Mon, 28 Apr 2025 23:29:42 +0000 Received: from spqr.komquats.com ([70.66.136.217]) by cmsmtp with ESMTPSA id 9XuuuLD8mWbOa9Xuvu5Aoz; Mon, 28 Apr 2025 23:29:42 +0000 X-Auth-User: cschuber X-Authority-Analysis: v=2.4 cv=Q5lx4J2a c=1 sm=1 tr=0 ts=68100f66 a=h7br+8Ma+Xn9xscxy5znUg==:117 a=h7br+8Ma+Xn9xscxy5znUg==:17 a=IkcTkHD0fZMA:10 a=XR8D0OoHHMoA:10 a=6I5d2MoRAAAA:8 a=EkcXrb_YAAAA:8 a=YxBL1-UpAAAA:8 a=HbmzUUhu976pYsvldqkA:9 a=QEXdDO2ut3YA:10 a=LK5xJRSDVpKd5WXXoEvA:22 a=Ia-lj3WSrqcvXOmTRaiG:22 Received: from slippy.cwsent.com (slippy [10.1.1.91]) by spqr.komquats.com (Postfix) with ESMTP id AC544143; Mon, 28 Apr 2025 16:29:39 -0700 (PDT) Received: from slippy (localhost [127.0.0.1]) by slippy.cwsent.com (Postfix) with ESMTP id 6DBCE116; Mon, 28 Apr 2025 16:29:39 -0700 (PDT) Date: Mon, 28 Apr 2025 16:29:39 -0700 From: Cy Schubert To: Vladimir Druzenko Cc: Cy Schubert , ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: Re: git: a8b4678fc925 - main - emulators/virtualbox-ose-70: Fix 15-CURRENT kmod build Message-ID: <20250428162831.11f887a8@slippy> In-Reply-To: <75d70616-d0ad-4c29-818d-25a21ba0042d@freebsd.org> References: <202504282032.53SKWSwG044334@gitrepo.freebsd.org> <75d70616-d0ad-4c29-818d-25a21ba0042d@freebsd.org> Organization: KOMQUATS X-Mailer: Claws Mail 3.21.0 (GTK+ 2.24.33; amd64-portbld-freebsd15.0) List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-CMAE-Envelope: MS4xfAlvpRt8eeTaHOdND7c3lfeDjX1jHJfhKqfSyXC+2jZ0w0wc4DllPzk8BhM0dwTKf3iDh+ECNTsxsYDLqSdyFa4/YJdC2MqltFPAJdNeK5wLRMLBkvGA tZerGy1efV73YPNg39w41c0tmxqtr+FO9SYvyKSu+5j8K4+CHVceREqc2iNnmvtAX4lKsy3QnI3udqtI+tkR+9mF3sPAsKL7UDKVDrNQhxTrZtZiwBc6i0GS Qg9BUytultQ2cNxsIyBgEOzjjd0MDy7mjTZsuQMnoWDsyEWf7iSJyjzQmA3vC1863AxH4xmhfw+4fNLpjfwqmp29RIUQvbB1mxfaN1IA+IoSZoCj3L2lnJ3R WxM5FIP2 X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:16509, ipnet:3.96.0.0/15, country:US] X-Rspamd-Queue-Id: 4Zmfml0mFtz3mg5 X-Spamd-Bar: ---- On Tue, 29 Apr 2025 00:59:36 +0300 Vladimir Druzenko wrote: > Hello! >=20 > Thanks for patch, but! > 1. What is the purpose of such changes: > > -@@ -155,8 +157,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pM= em) > > +@@ -155,8 +157,6 @@ =20 > ? Patch regeneration. diff -u produces a new patch. >=20 > 2. AFAIK, I'm the only one in vbox@ (maintainer of all VirtualBox ports)= =20 > and I'm active. Why did you committed this patch without at least notify = me? Build fixes are implicitly approved by portmgr. I should have put "approved= by: portmgr (break fix)".=20 > It isn't "port breakage" - 15 isn't releases yet and we can prepare=20 Actually it is port breakage. --- memuserkernel-r0drv-freebsd.o --- --- memobj-r0drv-freebsd.o --- /wrkdirs/usr/ports/emulators/virtualbox-ose-kmod-70/work/VirtualBox-7.0.24/= out/freebsd.amd64/release/bin/src/vboxdrv/r0drv/freebsd/memobj-r0drv-freebs= d.c:474:53: error: member reference type 'int' is not a pointer 474 | pMemFreeBSD->Core.u.Phys.PhysBase =3D VM_PAGE_TO_PH= YS(vm_page_find_least(pMemFreeBSD->pObject, 0)); | ^~~~~~~~~~~~~~~= ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/src/sys/vm/vm_page.h:504:42: note: expanded from macro 'VM_PAGE_TO_PHY= S' 504 | #define VM_PAGE_TO_PHYS(entry) ((entry)->phys_addr) | ~~~~~~~ ^ 1 error generated. *** [memobj-r0drv-freebsd.o] Error code 1 > patch several days as was in: > https://bugs.freebsd.org/286206 > https://bugs.freebsd.org/286193 > https://bugs.freebsd.org/286204 > If you want, you can join vbox@. Sure. > Otherwise, it is unclear what these groups and maintainers are for, if=20 > everyone can commit whatever they want at their own discretion. As I understand, break fixes are implicitly approved by portmgr. >=20 > 3. Have you checked other versions of VirtualBox:=20 > emulators/virtualbox-ose-kmod and emulators/virtualbox-ose-kmod-legacy? > Do they need the same patch? They all need the patch since vm_page_find_least() was removed from 15. This affected not only the vbox ports but the graphics/drm* ports as well. >=20 >=20 > Please either fix the patch taking into account the comments above, and=20 > also prepare patches for other versions of VirtualBox, or revert the=20 > commit and create a PR with the proposed patch, and I will fix it myself= =20 > and port it to other versions of VirtualBox (if necessary). >=20 > If you don't do any of the above, then I, as the maintainer, will do=20 > everything myself on May 1st. I can apply the same fixes to all the vbox ports if you want or if you prefer, that's fine by me as well. Sorry for stepping on your toes here. It wasn't my intention to take over, just to fix a broken port. I'm perfectly fine only opening PRs for the vbox ports if you prefer. >=20 >=20 > 28.04.2025 23:32, Cy Schubert =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > > The branch main has been updated by cy: > > > > URL: https://cgit.FreeBSD.org/ports/commit/?id=3Da8b4678fc9255e3c2c9559= 8c95bf5972941998fd > > > > commit a8b4678fc9255e3c2c95598c95bf5972941998fd > > Author: Cy Schubert > > AuthorDate: 2025-04-28 17:19:13 +0000 > > Commit: Cy Schubert > > CommitDate: 2025-04-28 20:29:16 +0000 > > > > emulators/virtualbox-ose-70: Fix 15-CURRENT kmod build > > =20 > > One remaining instance of vm_page_find_least(), which was removed = in > > 15-CURRENT, remained. Replace it with a call to vm_radix_lookup_ge= () > > instead. > > --- > > ...ox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c | 80 +++++++++++++= --------- > > 1 file changed, 46 insertions(+), 34 deletions(-) > > > > diff --git a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r= 0drv_freebsd_memobj-r0drv-freebsd.c b/emulators/virtualbox-ose-70/files/pat= ch-src_VBox_Runtime_r0drv_freebsd_memobj-r0drv-freebsd.c > > index 7b8767a8aa58..205c897c818d 100644 > > --- a/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_fr= eebsd_memobj-r0drv-freebsd.c > > +++ b/emulators/virtualbox-ose-70/files/patch-src_VBox_Runtime_r0drv_fr= eebsd_memobj-r0drv-freebsd.c > > @@ -1,6 +1,6 @@ > > ---- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-01= -21 14:07:00 UTC > > -+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c > > -@@ -139,8 +139,10 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ p= Mem) > > +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2025-04= -11 05:12:39.000000000 -0700 > > ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2025-04-28 1= 0:14:45.981609000 -0700 > > +@@ -139,8 +139,10 @@ > > =20 > > DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pMem) > > { > > @@ -11,7 +11,7 @@ > > =20 > > switch (pMemFreeBSD->Core.enmType) > > { > > -@@ -155,8 +157,6 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pM= em) > > +@@ -155,8 +157,6 @@ > > =20 > > case RTR0MEMOBJTYPE_LOCK: > > { > > @@ -20,7 +20,7 @@ > > if (pMemFreeBSD->Core.u.Lock.R0Process !=3D NIL_RTR0PROC= ESS) > > pMap =3D &((struct proc *)pMemFreeBSD->Core.u.Lock.R= 0Process)->p_vmspace->vm_map; > > =20 > > -@@ -197,6 +197,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pM= em) > > +@@ -197,6 +197,7 @@ > > case RTR0MEMOBJTYPE_PHYS_NC: > > { > > VM_OBJECT_WLOCK(pMemFreeBSD->pObject); > > @@ -28,10 +28,11 @@ > > vm_page_t pPage =3D vm_page_find_least(pMemFreeBSD->pObj= ect, 0); > > #if __FreeBSD_version < 1000000 > > vm_page_lock_queues(); > > -@@ -210,6 +211,14 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ p= Mem) > > +@@ -209,6 +210,14 @@ > > + } > > #if __FreeBSD_version < 1000000 > > vm_page_unlock_queues(); > > - #endif > > ++#endif > > +#else /* __FreeBSD_version >=3D 1500038 */ > > + struct pctrie_iter pages; > > + vm_page_t page; > > @@ -39,11 +40,10 @@ > > + pctrie_iter_init(&pages, pMemFreeBSD->pObject); > > + VM_RADIX_FORALL(page, &pages) > > + vm_page_unwire(page, PQ_INACTIVE); > > -+#endif > > + #endif > > VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); > > vm_object_deallocate(pMemFreeBSD->pObject); > > - break; > > -@@ -220,6 +229,7 @@ DECLHIDDEN(int) rtR0MemObjNativeFree(RTR0MEMOBJ pM= em) > > +@@ -220,6 +229,7 @@ > > return VERR_INTERNAL_ERROR; > > } > > =20 > > @@ -51,7 +51,7 @@ > > return VINF_SUCCESS; > > } > > =20 > > -@@ -329,7 +339,8 @@ static int rtR0MemObjFreeBSDAllocHelper(PRTR0MEMOB= JFRE > > +@@ -329,7 +339,8 @@ > > size_t cPages =3D atop(pMemFreeBSD->Core.cb); > > int rc; > > =20 > > @@ -61,7 +61,7 @@ > > =20 > > /* No additional object reference for auto-deallocation upon unm= apping. */ > > #if __FreeBSD_version >=3D 1000055 > > -@@ -371,6 +382,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0ME= MOBJ > > +@@ -371,6 +382,7 @@ > > =20 > > DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0MEMOBJINTERNAL ppMem= , size_t cb, bool fExecutable, const char *pszTag) > > { > > @@ -69,7 +69,7 @@ > > PRTR0MEMOBJFREEBSD pMemFreeBSD =3D (PRTR0MEMOBJFREEBSD)rtR0MemOb= jNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PAGE, > > = NULL, cb, pszTag); > > if (pMemFreeBSD) > > -@@ -380,8 +392,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocPage(PPRTR0M= EMOBJ > > +@@ -380,8 +392,10 @@ > > *ppMem =3D &pMemFreeBSD->Core; > > else > > rtR0MemObjDelete(&pMemFreeBSD->Core); > > @@ -80,7 +80,7 @@ > > return VERR_NO_MEMORY; > > } > > =20 > > -@@ -395,6 +409,7 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEM= OBJI > > +@@ -395,6 +409,7 @@ > > =20 > > DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0MEMOBJINTERNAL ppMem,= size_t cb, bool fExecutable, const char *pszTag) > > { > > @@ -88,7 +88,7 @@ > > PRTR0MEMOBJFREEBSD pMemFreeBSD =3D (PRTR0MEMOBJFREEBSD)rtR0MemOb= jNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_LOW, NULL, cb, pszTag); > > if (pMemFreeBSD) > > { > > -@@ -403,14 +418,17 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocLow(PPRTR0M= EMOBJI > > +@@ -403,14 +418,17 @@ > > *ppMem =3D &pMemFreeBSD->Core; > > else > > rtR0MemObjDelete(&pMemFreeBSD->Core); > > @@ -106,7 +106,7 @@ > > PRTR0MEMOBJFREEBSD pMemFreeBSD =3D (PRTR0MEMOBJFREEBSD)rtR0MemOb= jNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_CONT, > > = NULL, cb, pszTag); > > if (pMemFreeBSD) > > -@@ -423,8 +441,10 @@ DECLHIDDEN(int) rtR0MemObjNativeAllocCont(PPRTR0M= EMOBJ > > +@@ -423,8 +441,10 @@ > > } > > else > > rtR0MemObjDelete(&pMemFreeBSD->Core); > > @@ -117,7 +117,7 @@ > > return VERR_NO_MEMORY; > > } > > =20 > > -@@ -432,6 +452,7 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0M= EMOB > > +@@ -432,6 +452,7 @@ > > static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0MEMOBJINTERNAL ppMe= m, RTR0MEMOBJTYPE enmType, size_t cb, RTHCPHYS PhysHighest, > > size_t uAlignment, bool f= Contiguous, int rcNoMem, const char *pszTag) > > { > > @@ -125,7 +125,7 @@ > > /* create the object. */ > > PRTR0MEMOBJFREEBSD pMemFreeBSD =3D (PRTR0MEMOBJFREEBSD)rtR0MemOb= jNew(sizeof(*pMemFreeBSD), enmType, NULL, cb, pszTag); > > if (pMemFreeBSD) > > -@@ -439,7 +460,8 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0M= EMOB > > +@@ -439,7 +460,8 @@ > > vm_paddr_t const VmPhysAddrHigh =3D PhysHighest !=3D NIL_RTH= CPHYS ? PhysHighest : ~(vm_paddr_t)0; > > u_long const cPages =3D atop(cb); > > =20 > > @@ -135,7 +135,19 @@ > > =20 > > int rc =3D rtR0MemObjFreeBSDPhysAllocHelper(pMemFreeBSD->pOb= ject, cPages, VmPhysAddrHigh, > > uAlignment, fConti= guous, true, rcNoMem); > > -@@ -462,8 +484,10 @@ static int rtR0MemObjFreeBSDAllocPhysPages(PPRTR0= MEMOB > > +@@ -449,7 +471,11 @@ > > + { > > + Assert(enmType =3D=3D RTR0MEMOBJTYPE_PHYS); > > + VM_OBJECT_WLOCK(pMemFreeBSD->pObject); > > ++#if __FreeBSD_version < 1500038 > > + pMemFreeBSD->Core.u.Phys.PhysBase =3D VM_PAGE_TO_PHYS= (vm_page_find_least(pMemFreeBSD->pObject, 0)); > > ++#else > > ++ pMemFreeBSD->Core.u.Phys.PhysBase =3D VM_PAGE_TO_PHYS= (vm_radix_lookup_ge(&(pMemFreeBSD->pObject->rtree), 0)); > > ++#endif > > + VM_OBJECT_WUNLOCK(pMemFreeBSD->pObject); > > + pMemFreeBSD->Core.u.Phys.fAllocated =3D true; > > + } > > +@@ -462,8 +488,10 @@ > > vm_object_deallocate(pMemFreeBSD->pObject); > > rtR0MemObjDelete(&pMemFreeBSD->Core); > > } > > @@ -146,7 +158,7 @@ > > return VERR_NO_MEMORY; > > } > > =20 > > -@@ -486,6 +510,7 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0ME= MOBJ > > +@@ -486,6 +514,7 @@ > > const char *pszTag) > > { > > AssertReturn(uCachePolicy =3D=3D RTMEM_CACHE_POLICY_DONT_CARE, V= ERR_NOT_SUPPORTED); > > @@ -154,7 +166,7 @@ > > =20 > > /* create the object. */ > > PRTR0MEMOBJFREEBSD pMemFreeBSD =3D (PRTR0MEMOBJFREEBSD)rtR0MemOb= jNew(sizeof(*pMemFreeBSD), RTR0MEMOBJTYPE_PHYS, > > -@@ -497,8 +522,10 @@ DECLHIDDEN(int) rtR0MemObjNativeEnterPhys(PPRTR0M= EMOBJ > > +@@ -497,8 +526,10 @@ > > pMemFreeBSD->Core.u.Phys.PhysBase =3D Phys; > > pMemFreeBSD->Core.u.Phys.uCachePolicy =3D uCachePolicy; > > *ppMem =3D &pMemFreeBSD->Core; > > @@ -165,7 +177,7 @@ > > return VERR_NO_MEMORY; > > } > > =20 > > -@@ -510,6 +537,7 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOBJI= NTER > > +@@ -510,6 +541,7 @@ > > vm_offset_t AddrStart, size_t c= b, uint32_t fAccess, > > RTR0PROCESS R0Process, int fFla= gs, const char *pszTag) > > { > > @@ -173,7 +185,7 @@ > > int rc; > > NOREF(fAccess); > > =20 > > -@@ -519,21 +547,28 @@ static int rtR0MemObjNativeLockInMap(PPRTR0MEMOB= JINTER > > +@@ -519,21 +551,28 @@ > > if (!pMemFreeBSD) > > return VERR_NO_MEMORY; > > =20 > > @@ -210,7 +222,7 @@ > > return VERR_NO_MEMORY;/** @todo fix mach -> vbox error conversio= n for freebsd. */ > > } > > =20 > > -@@ -573,6 +608,7 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0MEMO= BJIN > > +@@ -573,6 +612,7 @@ > > static int rtR0MemObjNativeReserveInMap(PPRTR0MEMOBJINTERNAL ppMem, = void *pvFixed, size_t cb, size_t uAlignment, > > RTR0PROCESS R0Process, vm_ma= p_t pMap, const char *pszTag) > > { > > @@ -218,7 +230,7 @@ > > int rc; > > =20 > > /* > > -@@ -631,11 +667,13 @@ static int rtR0MemObjNativeReserveInMap(PPRTR0ME= MOBJIN > > +@@ -631,11 +671,13 @@ > > pMemFreeBSD->Core.pv =3D (void *)MapAddress; > > pMemFreeBSD->Core.u.ResVirt.R0Process =3D R0Process; > > *ppMem =3D &pMemFreeBSD->Core; > > @@ -232,7 +244,7 @@ > > return rc; > > =20 > > } > > -@@ -659,6 +697,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0ME= MOBJ > > +@@ -659,6 +701,8 @@ > > DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0MEMOBJINTERNAL ppMem= , RTR0MEMOBJ pMemToMap, void *pvFixed, size_t uAlignment, > > unsigned fProt, size_t off= Sub, size_t cbSub, const char *pszTag) > > { > > @@ -241,7 +253,7 @@ > > // AssertMsgReturn(!offSub && !cbSub, ("%#x %#x\n", offSub, cbSub),= VERR_NOT_SUPPORTED); > > AssertMsgReturn(pvFixed =3D=3D (void *)-1, ("%p\n", pvFixed), VE= RR_NOT_SUPPORTED); > > =20 > > -@@ -713,6 +753,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0ME= MOBJ > > +@@ -713,6 +757,7 @@ > > Assert((vm_offset_t)pMemFreeBSD->Core.pv =3D=3D Addr); > > pMemFreeBSD->Core.u.Mapping.R0Process =3D NIL_RTR0PROCES= S; > > *ppMem =3D &pMemFreeBSD->Core; > > @@ -249,7 +261,7 @@ > > return VINF_SUCCESS; > > } > > rc =3D vm_map_remove(kernel_map, Addr, Addr + cbSub); > > -@@ -721,6 +762,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKernel(PPRTR0ME= MOBJ > > +@@ -721,6 +766,7 @@ > > else > > vm_object_deallocate(pMemToMapFreeBSD->pObject); > > =20 > > @@ -257,7 +269,7 @@ > > return VERR_NO_MEMORY; > > } > > =20 > > -@@ -728,6 +770,8 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMO= BJIN > > +@@ -728,6 +774,8 @@ > > DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0MEMOBJINTERNAL ppMem, = RTR0MEMOBJ pMemToMap, RTR3PTR R3PtrFixed, size_t uAlignment, > > unsigned fProt, RTR0PROCESS = R0Process, size_t offSub, size_t cbSub, const char *pszTag) > > { > > @@ -266,7 +278,7 @@ > > /* > > * Check for unsupported stuff. > > */ > > -@@ -785,44 +829,50 @@ DECLHIDDEN(int) rtR0MemObjNativeMapUser(PPRTR0ME= MOBJIN > > +@@ -785,44 +833,50 @@ > > =20 > > if (rc =3D=3D KERN_SUCCESS) > > { > > @@ -321,7 +333,7 @@ > > =20 > > if ((fProt & RTMEM_PROT_NONE) =3D=3D RTMEM_PROT_NONE) > > ProtectionFlags =3D VM_PROT_NONE; > > -@@ -833,7 +883,12 @@ DECLHIDDEN(int) rtR0MemObjNativeProtect(PRTR0MEMO= BJINT > > +@@ -833,7 +887,12 @@ > > if ((fProt & RTMEM_PROT_EXEC) =3D=3D RTMEM_PROT_EXEC) > > ProtectionFlags |=3D VM_PROT_EXECUTE; > > =20 > > @@ -334,7 +346,7 @@ > > if (krc =3D=3D KERN_SUCCESS) > > return VINF_SUCCESS; > > =20 > > -@@ -858,11 +913,19 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhys= Addr(P > > +@@ -858,11 +917,19 @@ > > =20 > > vm_offset_t pb =3D (vm_offset_t)pMemFreeBSD->Core.pv + p= toa(iPage); > > =20 > > @@ -358,7 +370,7 @@ > > } > > =20 > > case RTR0MEMOBJTYPE_MAPPING: > > -@@ -871,11 +934,15 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhys= Addr(P > > +@@ -871,11 +938,15 @@ > > =20 > > if (pMemFreeBSD->Core.u.Mapping.R0Process !=3D NIL_RTR0P= ROCESS) > > { > > @@ -375,7 +387,7 @@ > > } > > return vtophys(pb); > > } > > -@@ -886,9 +953,11 @@ DECLHIDDEN(RTHCPHYS) rtR0MemObjNativeGetPagePhysA= ddr(P > > +@@ -886,9 +957,11 @@ > > { > > RTHCPHYS addr; > > =20 >=20 --=20 Cheers, Cy Schubert FreeBSD UNIX: Web: https://FreeBSD.org NTP: Web: https://nwtime.org e^(i*pi)+1=3D0