Index: head/emulators/open-vm-tools/Makefile =================================================================== --- head/emulators/open-vm-tools/Makefile (revision 448158) +++ head/emulators/open-vm-tools/Makefile (revision 448159) @@ -1,99 +1,100 @@ # Created by: mbr@FreeBSD.org # $FreeBSD$ PORTNAME= open-vm-tools PORTVERSION= ${RELEASE_VER} DISTVERSIONPREFIX= stable- PORTEPOCH= 2 +PORTREVISION= 1 CATEGORIES= emulators MAINTAINER= swills@FreeBSD.org COMMENT?= Open VMware tools for FreeBSD VMware guests LICENSE= LGPL21 LICENSE_FILE= ${WRKSRC}/COPYING LIB_DEPENDS= libmspack.so:archivers/libmspack \ libxerces-c.so:textproc/xerces-c3 \ libxml-security-c.so:security/apache-xml-security-c RELEASE_VER= 10.1.5 BUILD_VER= 5055683 OPTIONS_DEFINE= DNET ICU LIBNOTIFY OPENSSL X11 OPTIONS_DEFAULT= DNET ICU LIBNOTIFY OPENSSL X11 OPTIONS_SUB= DNET_DESC= libdnet support LIBNOTIFY_DESC= Desktop notification support X11_CONFIGURE_WITH= x gtk2 gtkmm X11_USE= xorg=ice,sm,x11,xext,xi,xinerama,xineramaproto,xrandr,xrender,xtst \ gnome=gdkpixbuf2,gtk20,gtkmm24 X11_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 LIBNOTIFY_LIB_DEPENDS= libnotify.so:devel/libnotify DNET_CONFIGURE_WITH= dnet DNET_LIB_DEPENDS= libdnet.so:net/libdnet ICU_CONFIGURE_WITH= icu ICU_LIB_DEPENDS= libicuuc.so:devel/icu OPENSSL_CONFIGURE_WITH= ssl WRKSRC= ${WRKDIR}/${PORTNAME}-stable-${RELEASE_VER}/open-vm-tools/ GNU_CONFIGURE= yes USE_GNOME= glib20 USES= autoreconf:-iv fuse gettext-runtime kmod libtool localbase pathfix pkgconfig USE_GITHUB= yes GH_ACCOUNT= vmware USE_LDCONFIG= yes CPPFLAGS+= -Wno-deprecated-declarations SSP_UNSAFE= kernel module does not support ssp CONFIGURE_ARGS+= --disable-grabbitmqproxy \ --disable-vgauth --without-procps \ --sysconfdir=${PREFIX}/etc CONFLICTS+= vmware-guestd[0-9]* vmware-tools[0-9]* USE_RC_SUBR= vmware-guestd vmware-kmod INSTALL_TARGET= install-strip .include .if ${PORT_OPTIONS:MX11} CONFLICTS= open-vm-tools-nox11-[0-9]* .else CONFLICTS= open-vm-tools-[0-9]* .endif ONLY_FOR_ARCHS= i386 amd64 CONFIGURE_ENV+= SYSDIR=${SRC_BASE}/sys .include post-patch: @${REINPLACE_CMD} -e "s@%%PREFIX%%@${PREFIX}@"\ ${WRKSRC}/lib/guestApp/guestApp.c post-build: cd ${WRKSRC}/modules && ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_ARGS} post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers ${MKDIR} ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/input ${INSTALL_DATA} ${WRKSRC}/modules/freebsd/vmblock.ko ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers/vmblock.ko ${INSTALL_DATA} ${WRKSRC}/modules/freebsd/vmmemctl.ko ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers/vmmemctl.ko ${INSTALL_DATA} ${WRKSRC}/modules/freebsd/vmxnet.ko ${STAGEDIR}${PREFIX}/lib/vmware-tools/modules/drivers/vmxnet.ko ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/scripts/vmware/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/scripts/ ${MKDIR} ${STAGEDIR}${PREFIX}/share/open-vm-tools/tests/ ${MKDIR} ${STAGEDIR}${PREFIX}/etc/rc.conf.d .include Index: head/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c =================================================================== --- head/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c (revision 448158) +++ head/emulators/open-vm-tools/files/patch-modules_freebsd_vmmemctl_os.c (revision 448159) @@ -1,129 +1,129 @@ ---- modules/freebsd/vmmemctl/os.c.orig 2017-02-24 22:15:37 UTC -+++ modules/freebsd/vmmemctl/os.c +--- modules/freebsd/vmmemctl/os.c.orig 2017-02-24 14:15:37.000000000 -0800 ++++ modules/freebsd/vmmemctl/os.c 2017-08-15 13:54:03.813152000 -0700 @@ -37,9 +37,11 @@ #include #include #include +#include #include #include #include +#include #include #include @@ -223,7 +225,11 @@ static __inline__ unsigned long os_ffz(u unsigned long OS_ReservedPageGetLimit(void) { +#if __FreeBSD_version < 1100015 return cnt.v_page_count; +#else + return vm_cnt.v_page_count; +#endif } @@ -369,7 +375,11 @@ static void os_pmap_alloc(os_pmap *p) // IN { /* number of pages (div. 8) */ +#if __FreeBSD_version < 1100015 p->size = (cnt.v_page_count + 7) / 8; +#else + p->size = (vm_cnt.v_page_count + 7) / 8; +#endif /* * expand to nearest word boundary @@ -392,6 +402,7 @@ os_pmap_free(os_pmap *p) // IN #if __FreeBSD_version < 1000000 kmem_free(kernel_map, (vm_offset_t)p->bitmap, p->size); #else +// kva_free((vm_offset_t)p->bitmap, p->size); kmem_free(kernel_arena, (vm_offset_t)p->bitmap, p->size); #endif p->size = 0; @@ -466,12 +477,36 @@ os_kmem_free(vm_page_t page) // IN os_state *state = &global_state; os_pmap *pmap = &state->pmap; - if ( !vm_page_lookup(state->vmobject, page->pindex) ) { - return; -- } +// if ( !vm_page_lookup(state->vmobject, page->pindex) ) { +// return; +// } - -- os_pmap_putindex(pmap, page->pindex); -- vm_page_free(page); ++ +// os_pmap_putindex(pmap, page->pindex); +// vm_page_free(page); +#if __FreeBSD_version > 1000029 + VM_OBJECT_WLOCK(state->vmobject); +#else + VM_OBJECT_LOCK(state->vmobject); +#endif + if ( vm_page_lookup(state->vmobject, page->pindex) ) { + os_pmap_putindex(pmap, page->pindex); +#if __FreeBSD_version >= 900000 + vm_page_lock(page); +#else + vm_page_lock_queues(); +#endif + vm_page_free(page); +#if __FreeBSD_version >= 900000 + vm_page_unlock(page); +#else + vm_page_unlock_queues(); +#endif -+ } + } +- +- os_pmap_putindex(pmap, page->pindex); +- vm_page_free(page); +#if __FreeBSD_version > 1000029 + VM_OBJECT_WUNLOCK(state->vmobject); +#else + VM_OBJECT_UNLOCK(state->vmobject); +#endif } @@ -483,8 +518,19 @@ os_kmem_alloc(int alloc_normal_failed) / os_state *state = &global_state; os_pmap *pmap = &state->pmap; +#if __FreeBSD_version > 1000029 + VM_OBJECT_WLOCK(state->vmobject); +#else + VM_OBJECT_LOCK(state->vmobject); +#endif + pindex = os_pmap_getindex(pmap); if (pindex == (vm_pindex_t)-1) { +#if __FreeBSD_version > 1000029 + VM_OBJECT_WUNLOCK(state->vmobject); +#else + VM_OBJECT_UNLOCK(state->vmobject); +#endif return NULL; } -@@ -504,6 +550,11 @@ os_kmem_alloc(int alloc_normal_failed) / - +@@ -505,6 +551,11 @@ os_kmem_alloc(int alloc_normal_failed) / if (!page) { os_pmap_putindex(pmap, pindex); + } +#if __FreeBSD_version > 1000029 + VM_OBJECT_WUNLOCK(state->vmobject); +#else + VM_OBJECT_UNLOCK(state->vmobject); +#endif - } return page; + } @@ -847,7 +898,7 @@ vmmemctl_sysctl(SYSCTL_HANDLER_ARGS) static void vmmemctl_init_sysctl(void) { - oid = sysctl_add_oid(NULL, SYSCTL_STATIC_CHILDREN(_vm), OID_AUTO, + oid = SYSCTL_ADD_OID(NULL, SYSCTL_STATIC_CHILDREN(_vm), OID_AUTO, BALLOON_NAME, CTLTYPE_STRING | CTLFLAG_RD, 0, 0, vmmemctl_sysctl, "A", BALLOON_NAME_VERBOSE);