diff options
Diffstat (limited to 'emulators/open-vm-kmod')
-rw-r--r-- | emulators/open-vm-kmod/Makefile | 6 | ||||
-rw-r--r-- | emulators/open-vm-kmod/distinfo | 6 | ||||
-rw-r--r-- | emulators/open-vm-kmod/files/patch-vmblock_subr.c | 29 | ||||
-rw-r--r-- | emulators/open-vm-kmod/files/patch-vmblock_vfsops.c | 11 | ||||
-rw-r--r-- | emulators/open-vm-kmod/files/patch-vmblock_vnops.c | 41 | ||||
-rw-r--r-- | emulators/open-vm-kmod/files/patch-vmmemctl_os.c | 8 |
6 files changed, 89 insertions, 12 deletions
diff --git a/emulators/open-vm-kmod/Makefile b/emulators/open-vm-kmod/Makefile index a7c726caf9fe..2fc821071214 100644 --- a/emulators/open-vm-kmod/Makefile +++ b/emulators/open-vm-kmod/Makefile @@ -1,5 +1,5 @@ PORTNAME= open-vm-kmod -PORTVERSION= 12.5.2 +PORTVERSION= 13.0.5 DISTVERSIONPREFIX= stable- PORTEPOCH= 2 CATEGORIES= emulators @@ -10,8 +10,8 @@ WWW= https://github.com/vmware/open-vm-tools LICENSE= BSD2CLAUSE GPLv2 LICENSE_COMB= multi -LICENSE_FILE_GPLv2= ${WRKSRC}/vmmemctl/COPYING LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/vmblock/COPYING +LICENSE_FILE_GPLv2= ${WRKSRC}/vmmemctl/COPYING ONLY_FOR_ARCHS= aarch64 amd64 i386 @@ -21,8 +21,8 @@ USE_GITHUB= yes GH_ACCOUNT= vmware GH_PROJECT= open-vm-tools -WRKSRC_SUBDIR= open-vm-tools/modules/freebsd/ MAKE_ARGS= OVT_SOURCE_DIR=${WRKSRC:H:H:H} +WRKSRC_SUBDIR= open-vm-tools/modules/freebsd/ PLIST_FILES= ${KMODDIR}/vmblock.ko \ ${KMODDIR}/vmmemctl.ko diff --git a/emulators/open-vm-kmod/distinfo b/emulators/open-vm-kmod/distinfo index 884191452e52..b05fe8f3acc7 100644 --- a/emulators/open-vm-kmod/distinfo +++ b/emulators/open-vm-kmod/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1750427304 -SHA256 (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 9fa2ebda1aaf53c163a978832775d845378d9ce59032c07b1c63b84ba091610f -SIZE (vmware-open-vm-tools-stable-12.5.2_GH0.tar.gz) = 3004283 +TIMESTAMP = 1759280952 +SHA256 (vmware-open-vm-tools-stable-13.0.5_GH0.tar.gz) = 9d4aa767c2b2acec2d56bb50546ef1bb59283e608444d50ef55c97afcd445457 +SIZE (vmware-open-vm-tools-stable-13.0.5_GH0.tar.gz) = 2990133 diff --git a/emulators/open-vm-kmod/files/patch-vmblock_subr.c b/emulators/open-vm-kmod/files/patch-vmblock_subr.c new file mode 100644 index 000000000000..256772117d77 --- /dev/null +++ b/emulators/open-vm-kmod/files/patch-vmblock_subr.c @@ -0,0 +1,29 @@ +--- vmblock/subr.c.orig 2025-10-01 18:42:23 UTC ++++ vmblock/subr.c +@@ -208,7 +208,7 @@ VMBlockHashGet(struct mount *mp, // IN: vmblock + } + } + mtx_unlock(&hashMutex); +- return NULLVP; ++ return NULL; + } + + +@@ -254,7 +254,7 @@ VMBlockHashInsert(struct mount *mp, // IN: + } + LIST_INSERT_HEAD(hd, xp, hashEntry); + mtx_unlock(&hashMutex); +- return NULLVP; ++ return NULL; + } + + +@@ -465,7 +465,7 @@ VMBlockCheckVp(vp, fil, lno) + panic("VMBlockCheckVp"); + }; + #endif +- if (a->lowerVnode == NULLVP) { ++ if (a->lowerVnode == NULL) { + /* Should never happen */ + int i; u_long *p; + printf("vp = %p, ZERO ptr\n", (void *)vp); diff --git a/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c b/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c index 97840675e338..11207b5cb0e2 100644 --- a/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c +++ b/emulators/open-vm-kmod/files/patch-vmblock_vfsops.c @@ -1,4 +1,4 @@ ---- vmblock/vfsops.c.orig 2024-10-10 15:05:07 UTC +--- vmblock/vfsops.c.orig 2025-10-01 18:44:42 UTC +++ vmblock/vfsops.c @@ -173,7 +173,6 @@ VMBlockVFSMount(struct mount *mp) // IN: mount( #endif @@ -8,3 +8,12 @@ uma_zfree(VMBlockPathnameZone, pathname); return error; } +@@ -354,7 +353,7 @@ VMBlockVFSRoot(struct mount *mp, // IN: vmblock + * Return locked reference to root. + */ + vp = MNTTOVMBLOCKMNT(mp)->rootVnode; +- VREF(vp); ++ vref(vp); + compat_vn_lock(vp, flags | LK_RETRY, compat_td); + *vpp = vp; + return 0; diff --git a/emulators/open-vm-kmod/files/patch-vmblock_vnops.c b/emulators/open-vm-kmod/files/patch-vmblock_vnops.c new file mode 100644 index 000000000000..64ebd25e1ce0 --- /dev/null +++ b/emulators/open-vm-kmod/files/patch-vmblock_vnops.c @@ -0,0 +1,41 @@ +--- vmblock/vnops.c.orig 2025-10-01 18:40:23 UTC ++++ vmblock/vnops.c +@@ -479,9 +479,9 @@ struct vop_generic_args { + * Check for and don't map any that aren't. (We must always map first + * vp or vclean fails.) + */ +- if (i && (*this_vp_p == NULLVP || ++ if (i && (*this_vp_p == NULL || + (*this_vp_p)->v_op != &VMBlockVnodeOps)) { +- old_vps[i] = NULLVP; ++ old_vps[i] = NULL; + } else { + old_vps[i] = *this_vp_p; + *(vps_p[i]) = VMBVPTOLOWERVP(*this_vp_p); +@@ -491,7 +491,7 @@ struct vop_generic_args { + * future.) + */ + if (reles & VDESC_VP0_WILLRELE) { +- VREF(*this_vp_p); ++ vref(*this_vp_p); + } + } + } +@@ -501,7 +501,7 @@ struct vop_generic_args { + * structure. + */ + if (vps_p[0] && *vps_p[0]) { +- error = VCALL(ap); ++ error = ap->a_desc->vdesc_call(ap); + } else { + printf("VMBlockVopBypass: no map for %s\n", descp->vdesc_name); + error = EINVAL; +@@ -681,7 +681,7 @@ struct vop_lookup_args { + */ + if (ldvp == lvp) { + *ap->a_vpp = dvp; +- VREF(dvp); ++ vref(dvp); + vrele(lvp); + } else { + error = VMBlockNodeGet(dvp->v_mount, lvp, &vp, pathname); diff --git a/emulators/open-vm-kmod/files/patch-vmmemctl_os.c b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c index d083ec453d4f..899fd4d90a50 100644 --- a/emulators/open-vm-kmod/files/patch-vmmemctl_os.c +++ b/emulators/open-vm-kmod/files/patch-vmmemctl_os.c @@ -1,14 +1,12 @@ ---- vmmemctl/os.c.orig 2025-05-15 19:16:07 UTC +--- vmmemctl/os.c.orig 2025-09-30 06:45:41 UTC +++ vmmemctl/os.c @@ -91,8 +91,13 @@ MALLOC_DEFINE(M_VMMEMCTL, BALLOON_NAME, "vmmemctl meta /* * FreeBSD specific MACROS */ --#define VM_PAGE_LOCK(page) vm_page_lock(page); --#define VM_PAGE_UNLOCK(page) vm_page_unlock(page) +#if __FreeBSD_version < 1500046 -+#define VM_PAGE_LOCK(page) vm_page_tryxbusy(page); -+#define VM_PAGE_UNLOCK(page) vm_page_xunbusy(page) + #define VM_PAGE_LOCK(page) vm_page_lock(page); + #define VM_PAGE_UNLOCK(page) vm_page_unlock(page) +#else +#define VM_PAGE_LOCK(page) vm_page_tryxbusy(page); +#define VM_PAGE_UNLOCK(page) vm_page_xunbusy(page) |