diff options
Diffstat (limited to 'emulators/open-vm-kmod/files')
-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 |
4 files changed, 83 insertions, 6 deletions
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) |