summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO34
-rw-r--r--PKGBUILD25
-rw-r--r--config8
-rw-r--r--datastores.xml11
-rw-r--r--vmmon.patch173
-rw-r--r--vmnet.patch84
6 files changed, 149 insertions, 186 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 18539373cb39..72a0560ad55a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = vmware-workstation
pkgdesc = The industry standard for running multiple operating systems as virtual machines on a single Linux PC.
- pkgver = 12.5.5_5234757
- pkgrel = 2
+ pkgver = 12.5.6_5528349
+ pkgrel = 1
url = https://www.vmware.com/products/workstation-for-linux.html
install = vmware-workstation.install
arch = x86_64
@@ -11,6 +11,7 @@ pkgbase = vmware-workstation
makedepends = unzip
depends = dkms
depends = fontconfig
+ depends = freetype2
depends = zlib
optdepends = linux-headers: build modules against Arch kernel
provides = vmware-ovftool
@@ -21,9 +22,15 @@ pkgbase = vmware-workstation
options = !strip
options = emptydirs
backup = etc/vmware/config
- source = https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.5.5-5234757.x86_64.bundle
+ backup = etc/pam.d/vmware-authd
+ backup = etc/vmware/hostd/config.xml
+ backup = etc/vmware/hostd/datastores.xml
+ backup = etc/vmware/hostd/environments.xml
+ backup = etc/vmware/hostd/proxy.xml
+ source = https://download3.vmware.com/software/wkst/file/VMware-Workstation-Full-12.5.6-5528349.x86_64.bundle
source = bootstrap
source = config
+ source = pam.d-vmware-authd
source = config.xml
source = datastores.xml
source = environments.xml
@@ -40,18 +47,19 @@ pkgbase = vmware-workstation
source = vmmon.patch
source = vmnet.patch
source = vsock.patch
- source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.6/5234762/packages/com.vmware.fusion.tools.darwinPre15.zip.tar
- source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.6/5234762/packages/com.vmware.fusion.tools.darwin.zip.tar
+ source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.7/5528452/packages/com.vmware.fusion.tools.darwinPre15.zip.tar
+ source = https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/8.5.7/5528452/packages/com.vmware.fusion.tools.darwin.zip.tar
source = unlocker.py
- sha256sums = 60635d69b765dd50b38189bcb0842b6d3cddd20cf429b4d2238f6e6b5eb19bdc
- sha256sums = 67edc40e39686281f5101ced1a250648ae32e4cd5dffe4fd47bc3c7aed929d50
- sha256sums = caa37259dec46da46c37e840368445dbe53a82ba9985c6a5ec987efca7813886
+ sha256sums = d8c0cf3a22a322189b0546862bc1173b3a99d69a5370970df37b351a85473c46
+ sha256sums = 12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e
+ sha256sums = 55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3
+ sha256sums = d50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7
sha256sums = d0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16
sha256sums = 04375658fed0cad4a18d5da1589d4dc1e5171753891ecaadd05f3c3e50c8156f
sha256sums = 25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f
sha256sums = 3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88
sha256sums = f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d
- sha256sums = b8027d87f2b2fed37edbbf781da9ae6963d788a655e72c1bb281b27eb1a09872
+ sha256sums = d1f9d6dccafee7a8fbc0bf9584e30babec1ddefca4b89973fb634276a8bd407f
sha256sums = e3812b78158672c7d96b6a58877681462f3fbdfe99a948b32c80c755c8682450
sha256sums = f9297948eba55fbaa6c9d1846b92070f27fda17afe78b41ed0e4c2eaa452b56c
sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d
@@ -59,11 +67,11 @@ pkgbase = vmware-workstation
sha256sums = b9818230242a42a1bc4debc556febb7650cfcb95f9ac04dec051bd4ea8f12dc1
sha256sums = 7a321d06f9caeb69015bb1fe6cbc8c7113365589b64f18344b12f92fa21e7ebd
sha256sums = 5ffe492526293ca8fa1b573f54c96ca4d62f5d03ba79b8bc3dddfe33bd0ff6c3
- sha256sums = 68d8e118625abc0f7f5b6504d86895f21a16b2cb1a46f0d32870fc304a89983c
- sha256sums = d0be44504a5bb2f0ad7c64702ede0086367bf04ebf6860ee01e4227a00570e5a
+ sha256sums = 2472275ad2afa32e1c771f3bdf1773e9cfab7c300bbb6c6e962f0e06271a5094
+ sha256sums = a4d98e2f7654c6324a04765ef95a16d7f230c34b4132b29fb5ba5bbc62c70014
sha256sums = d7e6b21fef94b4d3fe655a68c20a9556a718a252826a899fb46c4f2475046954
- sha256sums = fbd92d82c505d3353d26625d6567b7ec1a41e876a56a1ce1765c8fb7855d6c2c
- sha256sums = 9c13500ec9dcf578927e7bb2e44e69ada334d99f266d4a80d6578dde452b6fc1
+ sha256sums = dc614b0926f74c5b5384e509c423d4ff017520b6c4a47e7f54cc31ab04f6ac38
+ sha256sums = f36358e3d451e77e5eae198c6be2d86679c80686347c82902500eed08697a936
sha256sums = 2ad5c0e7a31d7c2009e449fe16acfd5a9036b9d69258be82004cbd0ee41b42cf
pkgname = vmware-workstation
diff --git a/PKGBUILD b/PKGBUILD
index a9cdeaef996f..ddeaa044c77c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -14,8 +14,8 @@
#PKGEXT=.pkg.tar
pkgname=vmware-workstation
-pkgver=12.5.5_5234757
-pkgrel=2
+pkgver=12.5.6_5528349
+pkgrel=1
pkgdesc='The industry standard for running multiple operating systems as virtual machines on a single Linux PC.'
arch=(x86_64)
url='https://www.vmware.com/products/workstation-for-linux.html'
@@ -78,14 +78,14 @@ source=(
'vsock.patch'
)
sha256sums=(
- '60635d69b765dd50b38189bcb0842b6d3cddd20cf429b4d2238f6e6b5eb19bdc'
+ 'd8c0cf3a22a322189b0546862bc1173b3a99d69a5370970df37b351a85473c46'
'12e7b16abf8d7e858532edabb8868919c678063c566a6535855b194aac72d55e'
- '5f640c641e72e0d1aedfbf0a82ae61d19ac1672cfa7078c36df51bccb84b26e3'
+ '55af509a4328fa88518e7008c65ff5598e6007e99ca2b4421a8f9b26126f6ff3'
'd50aa0a3fe94025178965d988e18d41eb60aa1ce2b28ee6e3ca15edeabfa2ca7'
'd0806b6cb99af04232585def7b8043df3104b9b17470ea70abbd5bedc1e7ca16'
- '04375658fed0cad4a18d5da1589d4dc1e5171753891ecaadd05f3c3e50c8156f'
+ '434cd4aa440d36b75ee20e0b588aaad874bb0d796173990bc4046667c66f5099'
'25c5aa39489d14a60f9cb30bdd7b21d36399c3355daee8bf5fbebcb62fe9f45f'
'3c802523606184a5e8ebbe931d9c6c70d83ff8c6833b9f48aa264f0bd5a18a88'
@@ -99,8 +99,8 @@ sha256sums=(
'b9818230242a42a1bc4debc556febb7650cfcb95f9ac04dec051bd4ea8f12dc1'
'7a321d06f9caeb69015bb1fe6cbc8c7113365589b64f18344b12f92fa21e7ebd'
'5ffe492526293ca8fa1b573f54c96ca4d62f5d03ba79b8bc3dddfe33bd0ff6c3'
- '68d8e118625abc0f7f5b6504d86895f21a16b2cb1a46f0d32870fc304a89983c'
- 'd0be44504a5bb2f0ad7c64702ede0086367bf04ebf6860ee01e4227a00570e5a'
+ '2472275ad2afa32e1c771f3bdf1773e9cfab7c300bbb6c6e962f0e06271a5094'
+ 'a4d98e2f7654c6324a04765ef95a16d7f230c34b4132b29fb5ba5bbc62c70014'
'd7e6b21fef94b4d3fe655a68c20a9556a718a252826a899fb46c4f2475046954'
)
options=(!strip emptydirs)
@@ -110,7 +110,7 @@ _isoimages=(freebsd linux linuxPreGlibc25 netware solaris windows winPre2k winPr
if [ -n "$_enable_macOS_guests" ]; then
-_vmware_fusion_ver=8.5.6_5234762
+_vmware_fusion_ver=8.5.7_5528452
# List of VMware Fusion versions: https://softwareupdate.vmware.com/cds/vmw-desktop/fusion/
makedepends+=(
@@ -124,8 +124,8 @@ source+=(
'unlocker.py'
)
sha256sums+=(
- 'fbd92d82c505d3353d26625d6567b7ec1a41e876a56a1ce1765c8fb7855d6c2c'
- '9c13500ec9dcf578927e7bb2e44e69ada334d99f266d4a80d6578dde452b6fc1'
+ 'dc614b0926f74c5b5384e509c423d4ff017520b6c4a47e7f54cc31ab04f6ac38'
+ 'f36358e3d451e77e5eae198c6be2d86679c80686347c82902500eed08697a936'
'2ad5c0e7a31d7c2009e449fe16acfd5a9036b9d69258be82004cbd0ee41b42cf'
)
@@ -257,7 +257,7 @@ package() {
install -Dm 644 "$srcdir/pam.d-vmware-authd" "$pkgdir/etc/pam.d/vmware-authd"
- mkdir -p "$pkgdir/usr/lib/modules-load.d"
+ install -dm755 "$pkgdir/usr/lib/modules-load.d"
echo -e "vmci\nvmmon" > "$pkgdir/usr/lib/modules-load.d/vmware.conf"
for service_file in \
@@ -354,11 +354,12 @@ package() {
rm -r "$pkgdir/usr/lib/vmware/modules/source"
for module in vmblock vmci vmmon vmnet vsock; do
+ msg "Patching $module module for DKMS"
patch -p2 --read-only=ignore --directory="$dkms_dir/$module-only" < "$srcdir/$module.patch"
done
if [ -n "$_enable_macOS_guests" ]; then
- # Patch VMware files to add macOS guest support
+ msg "Patching VMware for macOS guest support"
python2 "$srcdir/unlocker.py"
for isoimage in ${_fusion_isoimages[@]}
diff --git a/config b/config
index d9cd38430026..f71c789c9738 100644
--- a/config
+++ b/config
@@ -13,14 +13,14 @@ vix.libdir = "/usr/lib/vmware-vix"
installerDefaults.componentDownloadEnabled = "no"
installerDefaults.autoSoftwareUpdateEnabled.epoch = "5971871847"
vix.config.version = "1"
-player.product.version = "12.5.5"
+player.product.version = "12.5.6"
installerDefaults.dataCollectionEnabled.epoch = "2097005183"
installerDefaults.dataCollectionEnabled = "no"
installerDefaults.transferVersion = "1"
installerDefaults.autoSoftwareUpdateEnabled = "no"
-product.buildNumber = "5234757"
+product.buildNumber = "5528349"
authd.client.port = "902"
authd.proxy.nfc = "vmware-hostd:ha-nfc"
-product.version = "12.5.5"
-workstation.product.version = "12.5.5"
+product.version = "12.5.6"
+workstation.product.version = "12.5.6"
product.name = "VMware Workstation"
diff --git a/datastores.xml b/datastores.xml
index 452bbe43dba8..a457a95241fc 100644
--- a/datastores.xml
+++ b/datastores.xml
@@ -4,12 +4,13 @@
<_type>hostd.host.LocalDatastoreEntry[]</_type>
<e id="0">
<_type>hostd.host.LocalDatastoreEntry</_type>
- <dynamicProperty>
- <_length>0</_length>
- <_type>vmodl.DynamicProperty[]</_type>
- </dynamicProperty>
+ <id>1</id>
<name>standard</name>
<path>/var/lib/vmware/Shared VMs</path>
</e>
</LocalDatastores>
-</ConfigRoot>
+ <NasVolumes>
+ <_length>0</_length>
+ <_type>hostd.host.NasDatastoreEntry[]</_type>
+ </NasVolumes>
+</ConfigRoot> \ No newline at end of file
diff --git a/vmmon.patch b/vmmon.patch
index eea253c0a3ac..f49a8b4ca124 100644
--- a/vmmon.patch
+++ b/vmmon.patch
@@ -49,20 +49,7 @@ diff --git a/vmmon/linux/driver.c b/vmmon/linux/driver.c
index 87cf45b..5390a93 100644
--- a/vmmon/linux/driver.c
+++ b/vmmon/linux/driver.c
-@@ -105,8 +105,12 @@
- static int LinuxDriver_Close(struct inode *inode, struct file *filp);
- static unsigned int LinuxDriverPoll(struct file *file, poll_table *wait);
- #if defined(VMW_NOPAGE_2624)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
- static int LinuxDriverFault(struct vm_area_struct *vma, struct vm_fault *fault);
- #else
-+static int LinuxDriverFault(struct vm_fault *fault);
-+#endif
-+#else
- static struct page *LinuxDriverNoPage(struct vm_area_struct *vma,
- unsigned long address,
- int *type);
-@@ -124,7 +124,16 @@ static struct vm_operations_struct vmuser_mops = {
+@@ -126,7 +126,16 @@ static struct vm_operations_struct vmuser_mops = {
#endif
};
@@ -80,7 +67,7 @@ index 87cf45b..5390a93 100644
static struct timer_list tscTimer;
static Atomic_uint32 tsckHz;
static VmTimeStart tsckHzStartTime;
-@@ -254,7 +263,7 @@ static void
+@@ -256,7 +265,7 @@ static void
LinuxDriverInitTSCkHz(void)
{
unsigned int khz;
@@ -89,7 +76,7 @@ index 87cf45b..5390a93 100644
khz = compat_tsc_khz();
if (khz != 0) {
Atomic_Write(&tsckHz, khz);
-@@ -269,7 +278,7 @@ LinuxDriverInitTSCkHz(void)
+@@ -271,7 +280,7 @@ LinuxDriverInitTSCkHz(void)
add_timer(&tscTimer);
}
@@ -98,7 +85,7 @@ index 87cf45b..5390a93 100644
/*
*----------------------------------------------------------------------
*
-@@ -317,21 +326,6 @@ init_module(void)
+@@ -319,21 +328,6 @@ init_module(void)
linuxState.fastClockPriority = -20;
linuxState.swapSize = VMMON_UNKNOWN_SWAP_SIZE;
@@ -120,7 +107,7 @@ index 87cf45b..5390a93 100644
#ifdef VMX86_DEVEL
devel_init_module();
linuxState.minor = 0;
-@@ -387,7 +381,9 @@ cleanup_module(void)
+@@ -389,7 +383,9 @@ cleanup_module(void)
#ifdef VMX86_DEVEL
unregister_chrdev(linuxState.major, linuxState.deviceName);
#else
@@ -131,31 +118,7 @@ index 87cf45b..5390a93 100644
#endif
Log("Module %s: unloaded\n", linuxState.deviceName);
-@@ -882,15 +886,23 @@
- */
-
- #if defined(VMW_NOPAGE_2624)
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
- static int LinuxDriverFault(struct vm_area_struct *vma, //IN
- struct vm_fault *fault) //IN/OUT
- #else
-+static int LinuxDriverFault(struct vm_fault *fault) //IN/OUT
-+#endif
-+#else
- static struct page *LinuxDriverNoPage(struct vm_area_struct *vma, //IN
- unsigned long address, //IN
- int *type) //OUT: Fault type
- #endif
- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0)
- VMLinux *vmLinux = (VMLinux *) vma->vm_file->private_data;
-+#else
-+ VMLinux *vmLinux = (VMLinux *) fault->vma->vm_file->private_data;
-+#endif
- unsigned long pg;
- struct page* page;
-
-@@ -1279,7 +1275,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values
+@@ -1287,7 +1283,7 @@ LinuxDriverReadTSC(void *data, // OUT: TSC values
*-----------------------------------------------------------------------------
*/
@@ -164,7 +127,7 @@ index 87cf45b..5390a93 100644
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
{
TSCDelta tscDelta;
-@@ -1971,7 +1967,7 @@ LinuxDriver_Ioctl(struct file *filp, // IN:
+@@ -1979,7 +1975,7 @@ LinuxDriver_Ioctl(struct file *filp, // IN:
break;
}
@@ -187,15 +150,15 @@ index fd32013..583d6da 100644
#include <linux/preempt.h>
#include <linux/poll.h>
-@@ -74,6 +74,7 @@
+@@ -73,6 +76,7 @@
+ #include <linux/capability.h>
#include <linux/kthread.h>
#include <linux/wait.h>
-
+#include <asm/apic.h>
-
- #include "vmware.h"
- #include "x86apic.h"
-@@ -139,6 +140,10 @@ static DECLARE_TASKLET(timerTasklet, HostIFWakeupClockThread, 0);
+ #include <linux/signal.h>
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
+ #include <linux/taskstats_kern.h> // For linux/sched/signal.h without version check
+@@ -142,6 +146,10 @@
*/
#define LOCKED_PAGE_SLACK 10000
@@ -206,7 +169,7 @@ index fd32013..583d6da 100644
static struct {
Atomic_uint64 uptimeBase;
VersionedAtomic version;
-@@ -435,7 +440,7 @@ HostIF_CancelWaitForThreads(VMDriver *vm, // IN:
+@@ -438,7 +446,7 @@
* HostIF_WakeUpYielders --
*
* Wakeup vCPUs that are waiting for the current vCPU.
@@ -215,7 +178,7 @@ index fd32013..583d6da 100644
* Results:
* The requested vCPUs are nudged if they are sleeping due to
* Vmx86_YieldToSet.
-@@ -518,7 +523,7 @@ HostIF_InitGlobalLock(void)
+@@ -521,7 +529,7 @@
* None
*
* Side effects:
@@ -224,7 +187,7 @@ index fd32013..583d6da 100644
* The current thread is rescheduled if the lock is busy.
*
*-----------------------------------------------------------------------------
-@@ -561,7 +566,7 @@ HostIF_GlobalUnlock(int callerID) // IN
+@@ -564,7 +572,7 @@
* HostIF_GlobalLockIsHeld --
*
* Determine if the global lock is held by the current thread.
@@ -233,7 +196,7 @@ index fd32013..583d6da 100644
* Results:
* TRUE if yes
* FALSE if no
-@@ -591,7 +596,7 @@ HostIF_GlobalLockIsHeld(void)
+@@ -594,7 +602,7 @@
* None
*
* Side effects:
@@ -242,7 +205,7 @@ index fd32013..583d6da 100644
* The current thread is rescheduled if the lock is busy.
*
*-----------------------------------------------------------------------------
-@@ -726,7 +731,7 @@ static int
+@@ -729,7 +737,7 @@
HostIFHostMemInit(VMDriver *vm) // IN:
{
VMHost *vmh = vm->vmhost;
@@ -251,7 +214,7 @@ index fd32013..583d6da 100644
vmh->lockedPages = PhysTrack_Alloc(vm);
if (!vmh->lockedPages) {
return -1;
-@@ -821,8 +826,8 @@ HostIF_AllocMachinePage(void)
+@@ -824,8 +832,8 @@
*
* HostIF_FreeMachinePage --
*
@@ -262,7 +225,7 @@ index fd32013..583d6da 100644
* phystracker.
*
* Results:
-@@ -1115,7 +1120,7 @@ HostIF_LookupUserMPN(VMDriver *vm, // IN: VMDriver
+@@ -1118,7 +1126,7 @@
* Results:
* prevents INTR #0x2d (IRQ 13) from being generated --
* assume that Int16 works for interrupt reporting
@@ -271,7 +234,7 @@ index fd32013..583d6da 100644
*
* Side effects:
* PIC
-@@ -1130,7 +1135,7 @@ HostIF_InitFP(VMDriver *vm) // IN:
+@@ -1133,7 +1141,7 @@
uint8 val = inb(0xA1);
@@ -280,7 +243,7 @@ index fd32013..583d6da 100644
val = val | mask;
outb(val, 0xA1);
}
-@@ -1146,7 +1151,7 @@ HostIF_InitFP(VMDriver *vm) // IN:
+@@ -1149,7 +1157,7 @@
* If ppages is NULL, pages are only marked as dirty.
*
* Results:
@@ -289,7 +252,7 @@ index fd32013..583d6da 100644
*
* Side effects:
* None
-@@ -1162,14 +1167,16 @@ HostIFGetUserPages(void *uvAddr, // IN
+@@ -1165,14 +1173,16 @@
int retval;
down_read(&current->mm->mmap_sem);
@@ -311,7 +274,7 @@ index fd32013..583d6da 100644
up_read(&current->mm->mmap_sem);
return retval != numPages;
-@@ -1181,11 +1188,11 @@ HostIFGetUserPages(void *uvAddr, // IN
+@@ -1184,11 +1194,11 @@
*
* HostIF_IsLockedByMPN --
*
@@ -325,7 +288,7 @@ index fd32013..583d6da 100644
*
* Side effects:
* None.
-@@ -1307,7 +1314,7 @@ HostIF_UnlockPage(VMDriver *vm, // IN:
+@@ -1310,7 +1320,7 @@
vpn = VA_2_VPN((VA)addr);
e = MemTrack_LookupVPN(vm->memtracker, vpn);
@@ -334,7 +297,7 @@ index fd32013..583d6da 100644
if (e == NULL) {
return PAGE_UNLOCK_NOT_TRACKED;
}
-@@ -1353,7 +1360,7 @@ HostIF_UnlockPageByMPN(VMDriver *vm, // IN: VMDriver
+@@ -1356,7 +1366,7 @@
{
void *va = VA64ToPtr(uAddr);
MemTrackEntry *e;
@@ -343,7 +306,7 @@ index fd32013..583d6da 100644
/*
* Verify for debugging that VA and MPN make sense.
* PgtblVa2MPN() can fail under high memory pressure.
-@@ -1371,7 +1378,7 @@ HostIF_UnlockPageByMPN(VMDriver *vm, // IN: VMDriver
+@@ -1374,7 +1384,7 @@
}
/*
@@ -352,7 +315,7 @@ index fd32013..583d6da 100644
* HostIF_LockPage(allowMultipleMPNsPerVA = TRUE).
* That means that this MPN should not be in the MemTracker.
*/
-@@ -1384,7 +1391,7 @@ HostIF_UnlockPageByMPN(VMDriver *vm, // IN: VMDriver
+@@ -1387,7 +1397,7 @@
return PAGE_UNLOCK_MISMATCHED_TYPE;
}
}
@@ -361,7 +324,7 @@ index fd32013..583d6da 100644
HOST_UNLOCK_PFN_BYMPN(vm, mpn);
-@@ -1392,7 +1399,7 @@ HostIF_UnlockPageByMPN(VMDriver *vm, // IN: VMDriver
+@@ -1395,7 +1405,7 @@
}
@@ -370,7 +333,7 @@ index fd32013..583d6da 100644
UnlockEntry(void *clientData, // IN:
MemTrackEntry *entryPtr) // IN:
{
-@@ -1455,11 +1462,11 @@ HostIF_FreeAllResources(VMDriver *vm) // IN
+@@ -1458,11 +1468,11 @@
*
* HostIF_AllocKernelMem
*
@@ -385,7 +348,7 @@ index fd32013..583d6da 100644
*
* Side effects:
* memory is malloced
-@@ -1471,8 +1478,8 @@ HostIF_AllocKernelMem(size_t size, // IN:
+@@ -1474,8 +1484,8 @@
int wired) // IN:
{
void * ptr = kmalloc(size, GFP_KERNEL);
@@ -396,7 +359,7 @@ index fd32013..583d6da 100644
Warning("%s failed (size=%p)\n", __func__, (void*)size);
}
-@@ -1500,7 +1507,7 @@ void *
+@@ -1503,7 +1513,7 @@
HostIF_AllocPage(void)
{
VA kvAddr;
@@ -405,7 +368,7 @@ index fd32013..583d6da 100644
kvAddr = __get_free_page(GFP_KERNEL);
if (kvAddr == 0) {
Warning("%s: __get_free_page() failed\n", __func__);
-@@ -1515,7 +1522,7 @@ HostIF_AllocPage(void)
+@@ -1518,7 +1528,7 @@
*
* HostIF_FreeKernelMem
*
@@ -414,7 +377,7 @@ index fd32013..583d6da 100644
*
* Results:
* None.
-@@ -1554,7 +1561,7 @@ HostIF_FreePage(void *ptr) // IN:
+@@ -1557,7 +1567,7 @@
* from the kernel without causing the host to die or to be really upset.
*
* Results:
@@ -423,7 +386,7 @@ index fd32013..583d6da 100644
*
* Side effects:
* none
-@@ -1582,9 +1589,9 @@ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN
+@@ -1585,9 +1595,9 @@
* Use the memory information linux exports as of late for a more
* precise estimate of locked memory. All kernel page-related structures
* (slab, pagetable) are as good as locked. Unevictable includes things
@@ -436,7 +399,7 @@ index fd32013..583d6da 100644
*/
unsigned int forHost;
-@@ -1604,7 +1611,7 @@ HostIF_EstimateLockedPageLimit(const VMDriver* vm, // IN
+@@ -1607,7 +1617,7 @@
unsigned int swapPages = BYTES_2_PAGES(linuxState.swapSize);
if (anonPages > swapPages) {
@@ -445,7 +408,7 @@ index fd32013..583d6da 100644
}
forHost = lockedPages + LOCKED_PAGE_SLACK;
if (forHost > totalPhysicalPages) {
-@@ -1649,7 +1656,7 @@ HostIF_Wait(unsigned int timeoutMs)
+@@ -1652,7 +1662,7 @@
*----------------------------------------------------------------------
*/
@@ -454,7 +417,7 @@ index fd32013..583d6da 100644
HostIF_WaitForFreePages(unsigned int timeoutMs) // IN:
{
static unsigned count;
-@@ -1674,20 +1681,20 @@ HostIF_WaitForFreePages(unsigned int timeoutMs) // IN:
+@@ -1677,20 +1687,20 @@
* timeofday to have small drift (due to NTP rate correction, etc).
* We handle this by rebasing the jiffies based monotonic clock
* every second (see HostIFUptimeResyncMono).
@@ -478,7 +441,7 @@ index fd32013..583d6da 100644
{
struct timeval tv;
uint64 monotime, uptime, upBase, monoBase;
-@@ -1709,14 +1716,14 @@ HostIFReadUptimeWork(unsigned long *j) // OUT: current jiffies
+@@ -1712,14 +1722,14 @@
do_gettimeofday(&tv);
upBase = Atomic_Read64(&uptimeState.uptimeBase);
@@ -496,7 +459,7 @@ index fd32013..583d6da 100644
* Use the jiffies based monotonic time to sanity check gettimeofday.
* If they differ by more than one second, assume the time of day has
* been warped, and use the jiffies time to undo (most of) the warp.
-@@ -1728,7 +1735,7 @@ HostIFReadUptimeWork(unsigned long *j) // OUT: current jiffies
+@@ -1731,7 +1741,7 @@
uint64 newUpBase = monotime - (uptime - upBase);
attempts++;
@@ -505,7 +468,7 @@ index fd32013..583d6da 100644
attempts < 5) {
/* Another thread updated uptimeBase. Recalculate uptime. */
goto retry;
-@@ -1769,7 +1776,7 @@ HostIFUptimeResyncMono(unsigned long data) // IN: ignored
+@@ -1772,7 +1782,7 @@
unsigned long jifs;
uintptr_t flags;
@@ -514,7 +477,7 @@ index fd32013..583d6da 100644
* Read the uptime and the corresponding jiffies value. This will
* also correct the uptime (which is based on time of day) if needed
* before we rebase monotonic time (which is based on jiffies).
-@@ -1777,7 +1784,7 @@ HostIFUptimeResyncMono(unsigned long data) // IN: ignored
+@@ -1780,7 +1790,7 @@
uint64 uptime = HostIFReadUptimeWork(&jifs);
@@ -523,7 +486,7 @@ index fd32013..583d6da 100644
* Every second, recalculate monoBase and jiffiesBase to squash small
* drift between gettimeofday and jiffies. Also, this prevents
* (jiffies - jiffiesBase) wrap on 32-bits.
-@@ -1822,8 +1829,8 @@ HostIF_InitUptime(void)
+@@ -1825,8 +1835,8 @@
uptimeState.jiffiesBase = jiffies;
do_gettimeofday(&tv);
@@ -534,7 +497,7 @@ index fd32013..583d6da 100644
tv.tv_sec * UPTIME_FREQ));
init_timer(&uptimeState.timer);
-@@ -1951,7 +1958,7 @@ HostIF_CopyFromUser(void *dst, // OUT
+@@ -1954,7 +1964,7 @@
*-----------------------------------------------------------------------------
*/
@@ -543,7 +506,7 @@ index fd32013..583d6da 100644
HostIF_CopyToUser(void *dst, // OUT
const void *src, // IN
unsigned int len) // IN
-@@ -1964,15 +1971,15 @@ HostIF_CopyToUser(void *dst, // OUT
+@@ -1967,15 +1977,15 @@
*-----------------------------------------------------------------------------
*
* HostIF_MapCrossPage --
@@ -565,7 +528,7 @@ index fd32013..583d6da 100644
* uses a permanent mapping, instead of a temporary one with a high LA.
*
* Results:
-@@ -2160,7 +2167,7 @@ HostIF_VMLock(VMDriver *vm, // IN
+@@ -2163,7 +2173,7 @@
* None
*
* Side effects:
@@ -574,7 +537,7 @@ index fd32013..583d6da 100644
*
*-----------------------------------------------------------------------------
*/
-@@ -2183,7 +2190,7 @@ HostIF_VMUnlock(VMDriver *vm, // IN
+@@ -2186,7 +2196,7 @@
* HostIF_VMLockIsHeld --
*
* Determine if the per-VM lock is held by the current thread.
@@ -583,7 +546,7 @@ index fd32013..583d6da 100644
* Results:
* TRUE if yes
* FALSE if no
-@@ -2239,14 +2246,14 @@ HostIF_VMLockIsHeld(VMDriver *vm) // IN
+@@ -2242,14 +2252,14 @@
*
*----------------------------------------------------------------------
*/
@@ -600,7 +563,7 @@ index fd32013..583d6da 100644
old_fs = get_fs();
set_fs(get_ds());
r = APICR_TO_ADDR(r, APICR_VERSION);
-@@ -2321,7 +2328,7 @@ ProbeAPIC(VMDriver *vm, // IN/OUT: driver state
+@@ -2324,7 +2334,7 @@
Bool setVMPtr) // IN: set a pointer to the APIC's virtual address
{
MA ma = APIC_GetMA();
@@ -609,7 +572,7 @@ index fd32013..583d6da 100644
if (ma == (MA)-1) {
return FALSE;
}
-@@ -2422,7 +2429,7 @@ HostIF_APICInit(VMDriver *vm, // IN:
+@@ -2425,7 +2435,7 @@
* Perform the semaphore wait (P) operation, possibly blocking.
*
* Result:
@@ -618,7 +581,7 @@ index fd32013..583d6da 100644
* negated error code otherwise.
*
* Side-effects:
-@@ -2431,7 +2438,7 @@ HostIF_APICInit(VMDriver *vm, // IN:
+@@ -2434,7 +2444,7 @@
*-----------------------------------------------------------------------------
*/
@@ -627,7 +590,7 @@ index fd32013..583d6da 100644
HostIF_SemaphoreWait(VMDriver *vm, // IN:
Vcpuid vcpuid, // IN:
uint64 *args) // IN:
-@@ -2454,7 +2461,7 @@ HostIF_SemaphoreWait(VMDriver *vm, // IN:
+@@ -2457,7 +2467,7 @@
{
struct poll_wqueues table;
unsigned int mask;
@@ -636,7 +599,7 @@ index fd32013..583d6da 100644
poll_initwait(&table);
current->state = TASK_INTERRUPTIBLE;
mask = file->f_op->poll(file, &table.pt);
-@@ -2529,7 +2536,7 @@ HostIF_SemaphoreWait(VMDriver *vm, // IN:
+@@ -2532,7 +2542,7 @@
*-----------------------------------------------------------------------------
*/
@@ -645,7 +608,7 @@ index fd32013..583d6da 100644
HostIF_SemaphoreForceWakeup(VMDriver *vm, // IN:
const VCPUSet *vcs) // IN:
{
-@@ -2819,8 +2826,8 @@ HostIF_CallOnEachCPU(void (*func)(void*), // IN: function to call
+@@ -2822,8 +2832,8 @@
*
* HostIF_ReadPage --
*
@@ -656,7 +619,7 @@ index fd32013..583d6da 100644
*
* Results:
* 0 on success
-@@ -2851,7 +2858,7 @@ HostIF_ReadPage(MPN mpn, // MPN of the page
+@@ -2854,7 +2864,7 @@
if (ptr == NULL) {
return -ENOMEM;
}
@@ -665,7 +628,7 @@ index fd32013..583d6da 100644
if (kernelBuffer) {
memcpy(buf, ptr, PAGE_SIZE);
} else {
-@@ -2868,7 +2875,7 @@ HostIF_ReadPage(MPN mpn, // MPN of the page
+@@ -2871,7 +2881,7 @@
*
* HostIF_WritePage --
*
@@ -674,7 +637,7 @@ index fd32013..583d6da 100644
* page.
*
* Results:
-@@ -2998,7 +3005,7 @@ HostIF_GetNextAnonPage(VMDriver *vm, MPN inMPN)
+@@ -3001,7 +3011,7 @@
* Side effects:
* None.
*
@@ -683,7 +646,7 @@ index fd32013..583d6da 100644
*/
uint32
-@@ -3016,18 +3023,18 @@ HostIF_GetCurrentPCPU(void)
+@@ -3019,18 +3029,18 @@
*
* Wake up the fast clock thread. Can't do this from the timer
* callback, because it holds locks that the scheduling code
@@ -705,7 +668,7 @@ index fd32013..583d6da 100644
HostIFWakeupClockThread(unsigned long data) //IN:
{
wake_up_process(linuxState.fastClockThread);
-@@ -3038,7 +3045,7 @@ HostIFWakeupClockThread(unsigned long data) //IN:
+@@ -3041,7 +3051,7 @@
*----------------------------------------------------------------------
*
* HostIFTimerCallback --
@@ -714,7 +677,7 @@ index fd32013..583d6da 100644
* Schedule a tasklet to wake up the fast clock thread.
*
* Results:
-@@ -3049,8 +3056,8 @@ HostIFWakeupClockThread(unsigned long data) //IN:
+@@ -3052,8 +3062,8 @@
*
*----------------------------------------------------------------------
*/
@@ -725,7 +688,7 @@ index fd32013..583d6da 100644
HostIFTimerCallback(struct hrtimer *timer) //IN:
{
tasklet_schedule(&timerTasklet);
-@@ -3063,7 +3070,7 @@ HostIFTimerCallback(struct hrtimer *timer) //IN:
+@@ -3066,7 +3076,7 @@
*----------------------------------------------------------------------
*
* HostIFScheduleHRTimeout --
@@ -734,7 +697,7 @@ index fd32013..583d6da 100644
* Schedule an hrtimer to wake up the fast clock thread.
*
* Results:
-@@ -3075,7 +3082,7 @@ HostIFTimerCallback(struct hrtimer *timer) //IN:
+@@ -3078,7 +3088,7 @@
*----------------------------------------------------------------------
*/
@@ -743,7 +706,7 @@ index fd32013..583d6da 100644
HostIFScheduleHRTimeout(ktime_t *expires) //IN:
{
struct hrtimer t;
-@@ -3093,7 +3100,7 @@ HostIFScheduleHRTimeout(ktime_t *expires) //IN:
+@@ -3096,7 +3106,7 @@
if (hrtimer_active(&t)) {
schedule();
}
@@ -752,7 +715,7 @@ index fd32013..583d6da 100644
hrtimer_cancel(&t);
__set_current_state(TASK_RUNNING);
}
-@@ -3116,7 +3123,7 @@ HostIFScheduleHRTimeout(ktime_t *expires) //IN:
+@@ -3119,7 +3129,7 @@
* Side effects:
* none.
*
@@ -761,7 +724,7 @@ index fd32013..583d6da 100644
*/
static long
-@@ -3149,7 +3156,7 @@ HostIFDoIoctl(struct file *filp,
+@@ -3152,7 +3162,7 @@
*/
int
@@ -770,7 +733,7 @@ index fd32013..583d6da 100644
unsigned int rate, //IN: current clock rate
struct file *filp) //IN: /dev/rtc descriptor
{
-@@ -3159,14 +3166,14 @@ HostIFStartTimer(Bool rateChanged, //IN: Did rate change?
+@@ -3162,14 +3172,14 @@
int timerPeriod;
if (rateChanged) {
@@ -787,7 +750,7 @@ index fd32013..583d6da 100644
slack = timerPeriod / 100;
}
set_current_state(TASK_INTERRUPTIBLE);
-@@ -3512,7 +3519,7 @@ HostIF_MapUserMem(VA addr, // IN: User memory virtual address
+@@ -3515,7 +3525,7 @@
printk(KERN_DEBUG "%s: p = 0x%p, offset = 0x%p, numPagesNeeded = %"FMTSZ"u,"
" handleSize = %"FMTSZ"u, mappedAddr = 0x%p\n",
@@ -796,7 +759,7 @@ index fd32013..583d6da 100644
newHandle->numPages = numPagesNeeded;
newHandle->addr = mappedAddr;
-@@ -3548,7 +3555,7 @@ HostIF_UnmapUserMem(VMMappedUserMem *handle) // IN: Handle to mapped memory
+@@ -3551,7 +3561,7 @@
}
printk(KERN_DEBUG "%s: numPages = %"FMTSZ"u, addr = 0x%p\n",
diff --git a/vmnet.patch b/vmnet.patch
index 829646f7d6eb..5c71097116c4 100644
--- a/vmnet.patch
+++ b/vmnet.patch
@@ -103,17 +103,7 @@ diff --git a/vmnet/userif.c b/vmnet/userif.c
index 94146f6..5298406 100644
--- a/vmnet/userif.c
+++ b/vmnet/userif.c
-@@ -36,6 +36,9 @@
- #include <linux/slab.h>
- #include <linux/version.h>
- #include <linux/wait.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 99)
-+#include <linux/sched/signal.h>
-+#endif
-
- #include <net/checksum.h>
- #include <net/sock.h>
-@@ -113,14 +113,18 @@ UserifLockPage(VA addr) // IN
+@@ -116,14 +116,18 @@
int retval;
down_read(&current->mm->mmap_sem);
@@ -137,7 +127,7 @@ index 94146f6..5298406 100644
up_read(&current->mm->mmap_sem);
if (retval != 1) {
-@@ -184,13 +188,13 @@ VNetUserIfMapUint32Ptr(VA uAddr, // IN: pointer to user memory
+@@ -187,13 +191,13 @@
*
* Sets up notification by filling in pollPtr, actPtr, and recvClusterCount
* fields.
@@ -154,7 +144,7 @@ index 94146f6..5298406 100644
* recvClusterPage are filled in VNetUserIf structure.
*
*-----------------------------------------------------------------------------
-@@ -280,8 +284,8 @@ VNetUserIfSetupNotify(VNetUserIF *userIf, // IN
+@@ -283,8 +287,8 @@
* VNetUserIfUnsetupNotify --
*
* Destroys permanent mapping for notify structure provided by user.
@@ -165,7 +155,7 @@ index 94146f6..5298406 100644
* None.
*
* Side effects:
-@@ -335,7 +339,7 @@ VNetUserIfUnsetupNotify(VNetUserIF *userIf) // IN
+@@ -338,7 +342,7 @@
*
* Free the user interface port.
*
@@ -174,7 +164,7 @@ index 94146f6..5298406 100644
* None.
*
* Side effects:
-@@ -357,7 +361,7 @@ VNetUserIfFree(VNetJack *this) // IN
+@@ -360,7 +364,7 @@
}
dev_kfree_skb(skb);
}
@@ -183,7 +173,7 @@ index 94146f6..5298406 100644
if (userIf->pollPtr) {
VNetUserIfUnsetupNotify(userIf);
}
-@@ -381,7 +385,7 @@ VNetUserIfFree(VNetJack *this) // IN
+@@ -384,7 +388,7 @@
*
* This jack is receiving a packet. Take appropriate action.
*
@@ -192,7 +182,7 @@ index 94146f6..5298406 100644
* None.
*
* Side effects:
-@@ -397,12 +401,12 @@ VNetUserIfReceive(VNetJack *this, // IN
+@@ -400,12 +404,12 @@
VNetUserIF *userIf = (VNetUserIF*)this->private;
uint8 *dest = SKB_2_DESTMAC(skb);
unsigned long flags;
@@ -207,7 +197,7 @@ index 94146f6..5298406 100644
if (!VNetPacketMatch(dest,
userIf->port.paddr,
(const uint8 *)userIf->port.exactFilter,
-@@ -412,12 +416,12 @@ VNetUserIfReceive(VNetJack *this, // IN
+@@ -415,12 +419,12 @@
userIf->stats.droppedMismatch++;
goto drop_packet;
}
@@ -222,7 +212,7 @@ index 94146f6..5298406 100644
if (skb->len > ETHER_MAX_QUEUED_PACKET) {
userIf->stats.droppedLargePacket++;
goto drop_packet;
-@@ -441,7 +445,7 @@ VNetUserIfReceive(VNetJack *this, // IN
+@@ -444,7 +448,7 @@
wake_up(&userIf->waitQueue);
return;
@@ -231,7 +221,7 @@ index 94146f6..5298406 100644
drop_packet:
dev_kfree_skb(skb);
}
-@@ -454,7 +458,7 @@ VNetUserIfReceive(VNetJack *this, // IN
+@@ -457,7 +461,7 @@
*
* Callback for read operation on this userif entry in vnets proc fs.
*
@@ -240,7 +230,7 @@ index 94146f6..5298406 100644
* Length of read operation.
*
* Side effects:
-@@ -473,21 +477,21 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+@@ -476,21 +480,21 @@
// read
void *data) // IN: client data - not used
{
@@ -268,7 +258,7 @@ index 94146f6..5298406 100644
"dropped.down %u dropped.mismatch %u "
"dropped.overflow %u dropped.largePacket %u",
userIf->stats.droppedDown,
-@@ -496,7 +500,7 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+@@ -499,7 +503,7 @@
userIf->stats.droppedLargePacket);
len += sprintf(page+len, "\n");
@@ -277,7 +267,7 @@ index 94146f6..5298406 100644
*start = 0;
*eof = 1;
return len;
-@@ -510,7 +514,7 @@ VNetUserIfProcRead(char *page, // IN/OUT: buffer to write into
+@@ -513,7 +517,7 @@
*
* Copy part of datagram to userspace.
*
@@ -286,7 +276,7 @@ index 94146f6..5298406 100644
* zero on success,
* -EFAULT if buffer is an invalid area
*
-@@ -547,12 +551,12 @@ VNetCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
+@@ -550,12 +554,12 @@
*
* Copy part of datagram to userspace doing checksum at same time.
*
@@ -301,7 +291,7 @@ index 94146f6..5298406 100644
* folded checksum (non-negative value) on success,
* -EINVAL if offset is too big,
* -EFAULT if buffer is an invalid area
-@@ -574,7 +578,7 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
+@@ -577,7 +581,7 @@
char *curr = buf;
const skb_frag_t *frag;
@@ -310,7 +300,7 @@ index 94146f6..5298406 100644
* Something bad happened. We skip only up to skb->nh.raw, and skb->nh.raw
* must be in the header, otherwise we are in the big troubles.
*/
-@@ -631,7 +635,7 @@ VNetCsumCopyDatagram(const struct sk_buff *skb, // IN: skb to copy
+@@ -634,7 +638,7 @@
* Copy complete datagram to the user space. Fill correct checksum
* into the copied datagram if nobody did it yet.
*
@@ -319,7 +309,7 @@ index 94146f6..5298406 100644
* On success byte count, on failure -EFAULT.
*
* Side effects:
-@@ -660,7 +664,7 @@ VNetCopyDatagramToUser(const struct sk_buff *skb, // IN
+@@ -663,7 +667,7 @@
size_t skl;
int csum;
u_int16_t csum16;
@@ -328,7 +318,7 @@ index 94146f6..5298406 100644
skl = compat_skb_csum_start(skb);
if (VNetCopyDatagram(skb, buf, skl)) {
return -EFAULT;
-@@ -691,7 +695,7 @@ VNetCopyDatagramToUser(const struct sk_buff *skb, // IN
+@@ -694,7 +698,7 @@
* The virtual network's read file operation. Reads the next pending
* packet for this network connection.
*
@@ -337,7 +327,7 @@ index 94146f6..5298406 100644
* On success the len of the packet received,
* else if no packet waiting and nonblocking 0,
* else -errno.
-@@ -702,7 +706,7 @@ VNetCopyDatagramToUser(const struct sk_buff *skb, // IN
+@@ -705,7 +709,7 @@
*----------------------------------------------------------------------
*/
@@ -346,7 +336,7 @@ index 94146f6..5298406 100644
VNetUserIfRead(VNetPort *port, // IN
struct file *filp, // IN
char *buf, // OUT
-@@ -770,7 +774,7 @@ VNetUserIfRead(VNetPort *port, // IN
+@@ -773,7 +777,7 @@
* The virtual network's write file operation. Send the raw packet
* to the network.
*
@@ -355,7 +345,7 @@ index 94146f6..5298406 100644
* On success the count of bytes written else errno.
*
* Side effects:
-@@ -779,7 +783,7 @@ VNetUserIfRead(VNetPort *port, // IN
+@@ -782,7 +786,7 @@
*----------------------------------------------------------------------
*/
@@ -364,7 +354,7 @@ index 94146f6..5298406 100644
VNetUserIfWrite(VNetPort *port, // IN
struct file *filp, // IN
const char *buf, // IN
-@@ -791,8 +795,8 @@ VNetUserIfWrite(VNetPort *port, // IN
+@@ -794,8 +798,8 @@
/*
* Check size
*/
@@ -375,7 +365,7 @@ index 94146f6..5298406 100644
count > ETHER_MAX_QUEUED_PACKET) {
return -EINVAL;
}
-@@ -809,25 +813,25 @@ VNetUserIfWrite(VNetPort *port, // IN
+@@ -812,25 +816,25 @@
/*
* Allocate an sk_buff.
*/
@@ -406,7 +396,7 @@ index 94146f6..5298406 100644
VNetSend(&userIf->port.jack, skb);
return count;
-@@ -841,7 +845,7 @@ VNetUserIfWrite(VNetPort *port, // IN
+@@ -844,7 +848,7 @@
*
* XXX
*
@@ -415,7 +405,7 @@ index 94146f6..5298406 100644
* 0 on success
* -errno on failure
*
-@@ -864,8 +868,8 @@ VNetUserIfIoctl(VNetPort *port, // IN
+@@ -867,8 +871,8 @@
return -EINVAL;
case SIOCSETNOTIFY2:
#ifdef VMX86_SERVER
@@ -426,7 +416,7 @@ index 94146f6..5298406 100644
* the console os that are from the VMKernel address space which was the
* only case we used this.
*/
-@@ -908,20 +912,20 @@ VNetUserIfIoctl(VNetPort *port, // IN
+@@ -911,20 +915,20 @@
break;
case SIOCSIFFLAGS:
@@ -452,7 +442,7 @@ index 94146f6..5298406 100644
spin_lock_irqsave(&q->lock, flags);
if (userIf->pollPtr) {
if (skb_queue_empty(q)) {
-@@ -938,11 +942,11 @@ VNetUserIfIoctl(VNetPort *port, // IN
+@@ -941,11 +945,11 @@
case SIOCINJECTLINKSTATE:
{
uint8 linkUpFromUser;
@@ -466,7 +456,7 @@ index 94146f6..5298406 100644
if (linkUpFromUser != 0 && linkUpFromUser != 1) {
return -EINVAL;
}
-@@ -954,7 +958,7 @@ VNetUserIfIoctl(VNetPort *port, // IN
+@@ -957,7 +961,7 @@
return -ENOIOCTLCMD;
break;
}
@@ -475,7 +465,7 @@ index 94146f6..5298406 100644
return 0;
}
-@@ -966,7 +970,7 @@ VNetUserIfIoctl(VNetPort *port, // IN
+@@ -969,7 +973,7 @@
*
* The virtual network's file poll operation.
*
@@ -484,7 +474,7 @@ index 94146f6..5298406 100644
* Return POLLIN if success, else sleep and return 0.
* FIXME: Should not we always return POLLOUT?
*
-@@ -982,7 +986,7 @@ VNetUserIfPoll(VNetPort *port, // IN
+@@ -985,7 +989,7 @@
poll_table *wait) // IN
{
VNetUserIF *userIf = (VNetUserIF*)port->jack.private;
@@ -493,7 +483,7 @@ index 94146f6..5298406 100644
poll_wait(filp, &userIf->waitQueue, wait);
if (!skb_queue_empty(&userIf->packetQueue)) {
return POLLIN;
-@@ -997,8 +1001,8 @@ VNetUserIfPoll(VNetPort *port, // IN
+@@ -1000,8 +1004,8 @@
* VNetUserIfSetUplinkState --
*
* Sends link state change event.
@@ -504,7 +494,7 @@ index 94146f6..5298406 100644
* 0 on success, errno on failure.
*
* Side effects:
-@@ -1040,7 +1044,7 @@ VNetUserIfSetUplinkState(VNetPort *port, uint8 linkUp)
+@@ -1043,7 +1047,7 @@
event.header.eventId = 0;
event.header.classSet = VNET_EVENT_CLASS_UPLINK;
event.header.type = VNET_EVENT_TYPE_LINK_STATE;
@@ -513,7 +503,7 @@ index 94146f6..5298406 100644
* XXX kind of a hack, vmx will coalesce linkup/down if they come from the
* same adapter.
*/
-@@ -1065,8 +1069,8 @@ VNetUserIfSetUplinkState(VNetPort *port, uint8 linkUp)
+@@ -1068,8 +1072,8 @@
*
* Create a user level port to the wonderful world of virtual
* networking.
@@ -524,7 +514,7 @@ index 94146f6..5298406 100644
* Errno. Also returns an allocated port to connect to,
* NULL on error.
*
-@@ -1082,7 +1086,7 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+@@ -1085,7 +1089,7 @@
VNetUserIF *userIf;
static unsigned id = 0;
int retval;
@@ -533,7 +523,7 @@ index 94146f6..5298406 100644
userIf = kmalloc(sizeof *userIf, GFP_USER);
if (!userIf) {
return -ENOMEM;
-@@ -1091,7 +1095,7 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+@@ -1094,7 +1098,7 @@
/*
* Initialize fields.
*/
@@ -542,7 +532,7 @@ index 94146f6..5298406 100644
userIf->port.id = id++;
userIf->port.jack.peer = NULL;
-@@ -1136,7 +1140,7 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+@@ -1139,7 +1143,7 @@
/*
* Rest of fields.
*/
@@ -551,7 +541,7 @@ index 94146f6..5298406 100644
userIf->port.flags = IFF_RUNNING;
memset(userIf->port.paddr, 0, sizeof userIf->port.paddr);
-@@ -1149,12 +1153,12 @@ VNetUserIf_Create(VNetPort **ret) // OUT
+@@ -1152,12 +1156,12 @@
userIf->port.fileOpWrite = VNetUserIfWrite;
userIf->port.fileOpIoctl = VNetUserIfIoctl;
userIf->port.fileOpPoll = VNetUserIfPoll;