Add app-emulation/vmware-modules-279.2
This commit is contained in:
parent
2b543e4017
commit
1aa25cfe22
|
@ -0,0 +1,11 @@
|
||||||
|
AUX 279-apic.patch 302 SHA256 60e7df881281fedcabe9ea4427b324b5e1142a1a2b6ab5236ac0843bd1051048 SHA512 003240043e5875d8c6425c146e708eb3c3d8be7fa48a2ac42b3071f00dafdbd51f7796d6f884298b135adccaf8a3eac32fd82b34a436a724da125dac5f6261d7 WHIRLPOOL 4707d0ddd532d5ec27ee2ba3d0fb25c1972bbc9f958b4b89f2f5cceffdf955ba88cd1be0cde046aa5fa688d52faeab5ccf3f03bbccb3e9b088abc37ad579e8e0
|
||||||
|
AUX 279-hardened.patch 3334 SHA256 198c182b626aeeb0c6e6558e6982b6d9cd2f11bf03515f72972842f5c773e52c SHA512 eb6829742c44677c6d475894a2a996a87feb1c2ab9afda6a045333fc5befb1c2551ea17ec33e665542d322fb43195b6cfcd576665a73cfc82d66a98579521cf3 WHIRLPOOL d8fde574d68978a4850f06469e5a6dfe21acd0a68b744f3f37ffeb98d5f8786eedeb9fb435e1b141044a23fb142ae44879ee09a45229f2be1c84ef744c15cb7a
|
||||||
|
AUX 279-makefile-include.patch 2501 SHA256 208121855fe18ecb279ff40f2833463559363461c2170d32c17040211a01f169 SHA512 c498c025c7eb025f6554cee683242dd73e4a284e4b28c95b75339f4f4a912a156acc1845881fbd78bf399c2092af7413f5d6c4782cd066527ea275518b411c1d WHIRLPOOL e03a6d7139ab7b309e0ca1527cb8b52a8f84f5f5d997a510305d2a6ccdd39f33b18c7276df8ac78d92d2a17a66236f582baaa5e374069d3912090544908a0338
|
||||||
|
AUX 279-makefile-kernel-dir.patch 2153 SHA256 d76b1028d21b804836e36478d243cd7914435a34f3fe014058e0a9cc7a020653 SHA512 f18339dc8ac4c864b0c2fb234ad2db8f4638a5cd28e8fd11b5593c82107925b41b42e0d0acac52232a373780d79a3e397f70886534cdf889055e86cfda718f62 WHIRLPOOL 70c869bf4efab6843856addd0c5f5a295ed2fe38f9fc2a8ab2ca55523cd39cb92018d6bd0dac75658fa0f5260962c98f0bbd001593f3f11c2d204c693061c5b6
|
||||||
|
AUX 279-netdevice.patch 833 SHA256 8f17ce379abda45a8f94e1dcd6e43367273f97f76edd41f9941beb3b1730a751 SHA512 b4ec7c1694968a1843f10e8bfe0dbfdc99bd3b5fc1391456d91a3648b848b82df681a0748d967afa19e728c4d19b79b6a3cb9fd3e15a52a5cab048a6ac9b06a9 WHIRLPOOL b0cabe2ec1b8ca52d427c02593d6057c98d4ed00c578d006de65460138c37a5be76a7938d85f5a35eb6f49ee5e34065ce62b60a51b0ccf021639a59b27aeac8a
|
||||||
|
AUX 279-putname.patch 394 SHA256 b8103d3c72c24696e974e49dcdcdf2d5a2b2c2fdd5f6ca050842b840e906ba77 SHA512 86a0a0ec3ff225940190056e85d498fd7eb260bcc52882fea8921398f572bc46f56c3f2941d3f3d1587a07bc72c8885cbddacf632d2b5fed7d8c9d284399d6d8 WHIRLPOOL e1e8afcafe00131fd6d90b61e5d911da69d7c26b7fd19be085eb5cfd23c2ab19784ae5ddf18928f9cc4a178d87c6d51e8de27dfab8507e2d57fc18868fde9f45
|
||||||
|
AUX 279-userns.patch 1529 SHA256 8d2a357236eacb8501523d5b3e1681ddcdf15194ada9299222f4625cd0a1a82e SHA512 2ad9f5167bed1d3608b29224688fe848ac2cf54a39c3998f93279d31c5677b47dcdad62d3d5606f5280c47c1d6ac182216326d24b00ce9b02dc530a6727f716a WHIRLPOOL aae6bbb6b799eb1336f720de61554af271a0d2b482819332d79319f5cba40c18b1b9b34bc2606e1a494ea120218307226b205b9de2cd4b089337f11018227838
|
||||||
|
AUX 279-vmblock-3.11.patch 2380 SHA256 1a5e9937cd695ae1bd87f84155d22215527a833ab54b190dcee3d54b19969ca0 SHA512 a830b84edde2da2262ade62c13b26fbf940ddd659df9d45e7ec5f8474e68242fedf9da6788947a64fbf8304e056e37f1252e8597e468c5d6fee67541db144823 WHIRLPOOL 3bbc2ea455e0bb84dc9208b248bb21f591082809e673b18091057f9e00e412060de9aab91494b5acbe1e8d858bb4ef8a4dc60bc29217dda6932042b1c5858b61
|
||||||
|
AUX 279-vmblock-3.12.patch 2790 SHA256 aa91d00ac6756629e1eaec6e7623fccc56256b84335c8ec66916da9a6f6cff81 SHA512 9c73942d745117f3e7344b99b783353b31eb5f420088de37e8acea2725e7181ca70bdc431ac82f0751b490c689ed57b61d215fc92d5b1eb7a6cf0ed0a6318269 WHIRLPOOL 4a7c1f85172c59ae9bc34fa8e153a647c81e516d3e7e06196ef09aac293eb1d05a7e1960eff6d3bac385c75fdfd4a8d9c76ff68169c5073a9e54ac187fa4f107
|
||||||
|
AUX 279-vmblock.patch 1041 SHA256 217d27619ac782711686cffee44fbc4bbb40eb0657f335357ad1b0d064f30a35 SHA512 e8e565b677110090cb5bdb7c18d3e97c31049d846b82ee0406aa27dbfa9af8afc39512f1314d49edd6108ec576f3cbc565921de8dfdaaefe2822029ef98c303c WHIRLPOOL 769d0cffcb186d6110de049db963e20e049ef11d92b872c1a6ecfe262acad6c17f456376d219ce01e22839ddcb6a21a2d3e995d797f4c962a0838318dc6f56f9
|
||||||
|
EBUILD vmware-modules-279.2.ebuild 2901 SHA256 0f9aae51e583c45ace0fe3da5ac4b8152d93d2f32f9db14a030e02cd617407ee SHA512 d39100af69b5937b3cd420bfce985413fa2c9a39a4ee5118aca245ef3400218892703aebc672126382501392a77c32015f89e827e937e1a506109ec32bbfd11c WHIRLPOOL 17ac7c30bcb0f67cb30244db7193f491669e4049b229515ad83046b02ac39113f3335fb2c4786f4276b959931744693a3f21e30f6d01bc829b893b47b7188ca2
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff --git a/vmmon-only/linux/hostif.c b/vmmon-only/linux/hostif.c
|
||||||
|
index f1f4b10..c43242f 100644
|
||||||
|
--- a/vmmon-only/linux/hostif.c
|
||||||
|
+++ b/vmmon-only/linux/hostif.c
|
||||||
|
@@ -55,6 +55,7 @@
|
||||||
|
#include <linux/kthread.h>
|
||||||
|
#include <linux/wait.h>
|
||||||
|
|
||||||
|
+#include <asm/apic.h>
|
||||||
|
|
||||||
|
#include "vmware.h"
|
||||||
|
#include "x86apic.h"
|
|
@ -0,0 +1,113 @@
|
||||||
|
diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c
|
||||||
|
index b21dd44..960c2aa 100644
|
||||||
|
--- a/vmmon-only/linux/driver.c
|
||||||
|
+++ b/vmmon-only/linux/driver.c
|
||||||
|
@@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = {
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
-static struct file_operations vmuser_fops;
|
||||||
|
+static struct file_operations vmuser_fops = {
|
||||||
|
+ .owner = THIS_MODULE,
|
||||||
|
+ .poll = LinuxDriverPoll,
|
||||||
|
+#ifdef HAVE_UNLOCKED_IOCTL
|
||||||
|
+ .unlocked_ioctl = LinuxDriver_UnlockedIoctl,
|
||||||
|
+#else
|
||||||
|
+ .ioctl = LinuxDriver_Ioctl,
|
||||||
|
+#endif
|
||||||
|
+#ifdef HAVE_COMPAT_IOCTL
|
||||||
|
+ .compat_ioctl = LinuxDriver_UnlockedIoctl,
|
||||||
|
+#endif
|
||||||
|
+ .open = LinuxDriver_Open,
|
||||||
|
+ .release = LinuxDriver_Close,
|
||||||
|
+ .mmap = LinuxDriverMmap
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
static struct timer_list tscTimer;
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -357,27 +372,6 @@ init_module(void)
|
||||||
|
spin_lock_init(&linuxState.pollListLock);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Initialize the file_operations structure. Because this code is always
|
||||||
|
- * compiled as a module, this is fine to do it here and not in a static
|
||||||
|
- * initializer.
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
- memset(&vmuser_fops, 0, sizeof vmuser_fops);
|
||||||
|
- vmuser_fops.owner = THIS_MODULE;
|
||||||
|
- vmuser_fops.poll = LinuxDriverPoll;
|
||||||
|
-#ifdef HAVE_UNLOCKED_IOCTL
|
||||||
|
- vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl;
|
||||||
|
-#else
|
||||||
|
- vmuser_fops.ioctl = LinuxDriver_Ioctl;
|
||||||
|
-#endif
|
||||||
|
-#ifdef HAVE_COMPAT_IOCTL
|
||||||
|
- vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl;
|
||||||
|
-#endif
|
||||||
|
- vmuser_fops.open = LinuxDriver_Open;
|
||||||
|
- vmuser_fops.release = LinuxDriver_Close;
|
||||||
|
- vmuser_fops.mmap = LinuxDriverMmap;
|
||||||
|
-
|
||||||
|
#ifdef VMX86_DEVEL
|
||||||
|
devel_init_module();
|
||||||
|
linuxState.minor = 0;
|
||||||
|
diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c
|
||||||
|
index b12b982..40bd4cf 100644
|
||||||
|
--- a/vmnet-only/driver.c
|
||||||
|
+++ b/vmnet-only/driver.c
|
||||||
|
@@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp,
|
||||||
|
unsigned int iocmd, unsigned long ioarg);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-static struct file_operations vnetFileOps;
|
||||||
|
+static struct file_operations vnetFileOps = {
|
||||||
|
+ .owner = THIS_MODULE,
|
||||||
|
+ .read = VNetFileOpRead,
|
||||||
|
+ .write = VNetFileOpWrite,
|
||||||
|
+ .poll = VNetFileOpPoll,
|
||||||
|
+#ifdef HAVE_UNLOCKED_IOCTL
|
||||||
|
+ .unlocked_ioctl = VNetFileOpUnlockedIoctl,
|
||||||
|
+#else
|
||||||
|
+ .ioctl = VNetFileOpIoctl,
|
||||||
|
+#endif
|
||||||
|
+#ifdef HAVE_COMPAT_IOCTL
|
||||||
|
+ .compat_ioctl = VNetFileOpUnlockedIoctl,
|
||||||
|
+#endif
|
||||||
|
+ .open = VNetFileOpOpen,
|
||||||
|
+ .release = VNetFileOpClose
|
||||||
|
+};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Utility functions
|
||||||
|
@@ -476,28 +491,6 @@ init_module(void)
|
||||||
|
goto err_proto;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /*
|
||||||
|
- * Initialize the file_operations structure. Because this code is always
|
||||||
|
- * compiled as a module, this is fine to do it here and not in a static
|
||||||
|
- * initializer.
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
- memset(&vnetFileOps, 0, sizeof vnetFileOps);
|
||||||
|
- vnetFileOps.owner = THIS_MODULE;
|
||||||
|
- vnetFileOps.read = VNetFileOpRead;
|
||||||
|
- vnetFileOps.write = VNetFileOpWrite;
|
||||||
|
- vnetFileOps.poll = VNetFileOpPoll;
|
||||||
|
-#ifdef HAVE_UNLOCKED_IOCTL
|
||||||
|
- vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl;
|
||||||
|
-#else
|
||||||
|
- vnetFileOps.ioctl = VNetFileOpIoctl;
|
||||||
|
-#endif
|
||||||
|
-#ifdef HAVE_COMPAT_IOCTL
|
||||||
|
- vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl;
|
||||||
|
-#endif
|
||||||
|
- vnetFileOps.open = VNetFileOpOpen;
|
||||||
|
- vnetFileOps.release = VNetFileOpClose;
|
||||||
|
-
|
||||||
|
retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps);
|
||||||
|
if (retval) {
|
||||||
|
LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n",
|
|
@ -0,0 +1,65 @@
|
||||||
|
diff --git a/vmblock-only/Makefile.kernel b/vmblock-only/Makefile.kernel
|
||||||
|
index ab7a727..e3ec9d2 100644
|
||||||
|
--- a/vmblock-only/Makefile.kernel
|
||||||
|
+++ b/vmblock-only/Makefile.kernel
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
INCLUDE += -I$(SRCROOT)/include
|
||||||
|
|
||||||
|
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
|
||||||
|
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
|
||||||
|
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachecreate.c, -DVMW_KMEMCR_HAS_DTOR, )
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/cachector.c, -DVMW_KMEMCR_CTOR_HAS_3_ARGS, )
|
||||||
|
diff --git a/vmci-only/Makefile.kernel b/vmci-only/Makefile.kernel
|
||||||
|
index ba343ee..861ea83 100644
|
||||||
|
--- a/vmci-only/Makefile.kernel
|
||||||
|
+++ b/vmci-only/Makefile.kernel
|
||||||
|
@@ -21,7 +21,7 @@ CC_OPTS += -DVMCI
|
||||||
|
|
||||||
|
INCLUDE += -I$(SRCROOT)/shared -I$(SRCROOT)/common -I$(SRCROOT)/linux
|
||||||
|
|
||||||
|
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
|
||||||
|
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
|
||||||
|
|
||||||
|
obj-m += $(DRIVER).o
|
||||||
|
|
||||||
|
diff --git a/vmmon-only/Makefile.kernel b/vmmon-only/Makefile.kernel
|
||||||
|
index 8770d1d..c4746c3 100644
|
||||||
|
--- a/vmmon-only/Makefile.kernel
|
||||||
|
+++ b/vmmon-only/Makefile.kernel
|
||||||
|
@@ -22,7 +22,7 @@ CC_OPTS += -DVMMON -DVMCORE
|
||||||
|
INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux \
|
||||||
|
-I$(SRCROOT)/vmcore
|
||||||
|
|
||||||
|
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
|
||||||
|
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
|
||||||
|
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/smpcall.c, -DVMW_HAVE_SMP_CALL_3ARG, )
|
||||||
|
|
||||||
|
diff --git a/vmnet-only/Makefile.kernel b/vmnet-only/Makefile.kernel
|
||||||
|
index d1e3133..665d428 100644
|
||||||
|
--- a/vmnet-only/Makefile.kernel
|
||||||
|
+++ b/vmnet-only/Makefile.kernel
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
|
||||||
|
INCLUDE := -I$(SRCROOT)
|
||||||
|
|
||||||
|
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
|
||||||
|
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_net.c,-DVMW_NETDEV_HAS_NET, )
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/netdev_has_dev_net.c,-DVMW_NETDEV_HAS_DEV_NET, )
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/nfhook_uses_skb.c,-DVMW_NFHOOK_USES_SKB, )
|
||||||
|
diff --git a/vsock-only/Makefile.kernel b/vsock-only/Makefile.kernel
|
||||||
|
index b4629ee..264b8cb 100644
|
||||||
|
--- a/vsock-only/Makefile.kernel
|
||||||
|
+++ b/vsock-only/Makefile.kernel
|
||||||
|
@@ -25,7 +25,7 @@ INCLUDE += -I$(SRCROOT)/include
|
||||||
|
INCLUDE += -I$(SRCROOT)/linux
|
||||||
|
INCLUDE += -I$(SRCROOT)/common
|
||||||
|
|
||||||
|
-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
|
||||||
|
+EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
|
||||||
|
EXTRA_CFLAGS += $(call vm_check_build, $(AUTOCONF_DIR)/netcreate_num_params.c, -DVMW_NETCREATE_KERNARG, )
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
diff --git a/vmblock-only/Makefile b/vmblock-only/Makefile
|
||||||
|
index 2b81323..746c8b8 100644
|
||||||
|
--- a/vmblock-only/Makefile
|
||||||
|
+++ b/vmblock-only/Makefile
|
||||||
|
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
|
||||||
|
ifdef LINUXINCLUDE
|
||||||
|
HEADER_DIR = $(LINUXINCLUDE)
|
||||||
|
else
|
||||||
|
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
|
||||||
|
+HEADER_DIR = $(KERNEL_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-BUILD_DIR = $(HEADER_DIR)/..
|
||||||
|
+BUILD_DIR = $(KBUILD_OUTPUT)
|
||||||
|
|
||||||
|
DRIVER := vmblock
|
||||||
|
PRODUCT := ws
|
||||||
|
diff --git a/vmci-only/Makefile b/vmci-only/Makefile
|
||||||
|
index 8e9c5be..6ec828b 100644
|
||||||
|
--- a/vmci-only/Makefile
|
||||||
|
+++ b/vmci-only/Makefile
|
||||||
|
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
|
||||||
|
ifdef LINUXINCLUDE
|
||||||
|
HEADER_DIR = $(LINUXINCLUDE)
|
||||||
|
else
|
||||||
|
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
|
||||||
|
+HEADER_DIR = $(KERNEL_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-BUILD_DIR = $(HEADER_DIR)/..
|
||||||
|
+BUILD_DIR = $(KBUILD_OUTPUT)
|
||||||
|
|
||||||
|
DRIVER := vmci
|
||||||
|
PRODUCT := ws
|
||||||
|
diff --git a/vmmon-only/Makefile b/vmmon-only/Makefile
|
||||||
|
index 5bd867b..91a83d4 100644
|
||||||
|
--- a/vmmon-only/Makefile
|
||||||
|
+++ b/vmmon-only/Makefile
|
||||||
|
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
|
||||||
|
ifdef LINUXINCLUDE
|
||||||
|
HEADER_DIR = $(LINUXINCLUDE)
|
||||||
|
else
|
||||||
|
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
|
||||||
|
+HEADER_DIR = $(KERNEL_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-BUILD_DIR = $(HEADER_DIR)/..
|
||||||
|
+BUILD_DIR = $(KBUILD_OUTPUT)
|
||||||
|
|
||||||
|
DRIVER := vmmon
|
||||||
|
PRODUCT := @@PRODUCT@@
|
||||||
|
diff --git a/vmnet-only/Makefile b/vmnet-only/Makefile
|
||||||
|
index d4eb73c..c7c6d38 100644
|
||||||
|
--- a/vmnet-only/Makefile
|
||||||
|
+++ b/vmnet-only/Makefile
|
||||||
|
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
|
||||||
|
ifdef LINUXINCLUDE
|
||||||
|
HEADER_DIR = $(LINUXINCLUDE)
|
||||||
|
else
|
||||||
|
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
|
||||||
|
+HEADER_DIR = $(KERNEL_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-BUILD_DIR = $(HEADER_DIR)/..
|
||||||
|
+BUILD_DIR = $(KBUILD_OUTPUT)
|
||||||
|
|
||||||
|
DRIVER := vmnet
|
||||||
|
PRODUCT := @@PRODUCT@@
|
||||||
|
diff --git a/vsock-only/Makefile b/vsock-only/Makefile
|
||||||
|
index 93dd61d..9765696 100644
|
||||||
|
--- a/vsock-only/Makefile
|
||||||
|
+++ b/vsock-only/Makefile
|
||||||
|
@@ -49,10 +49,10 @@ VM_UNAME = $(shell uname -r)
|
||||||
|
ifdef LINUXINCLUDE
|
||||||
|
HEADER_DIR = $(LINUXINCLUDE)
|
||||||
|
else
|
||||||
|
-HEADER_DIR = /lib/modules/$(VM_UNAME)/build/include
|
||||||
|
+HEADER_DIR = $(KERNEL_DIR)
|
||||||
|
endif
|
||||||
|
|
||||||
|
-BUILD_DIR = $(HEADER_DIR)/..
|
||||||
|
+BUILD_DIR = $(KBUILD_OUTPUT)
|
||||||
|
|
||||||
|
DRIVER := vsock
|
||||||
|
PRODUCT := ws
|
|
@ -0,0 +1,24 @@
|
||||||
|
diff --git a/vmnet-only/compat_netdevice.h b/vmnet-only/compat_netdevice.h
|
||||||
|
index 7a56304..9ff4548 100644
|
||||||
|
--- a/vmnet-only/compat_netdevice.h
|
||||||
|
+++ b/vmnet-only/compat_netdevice.h
|
||||||
|
@@ -47,6 +47,19 @@
|
||||||
|
# define net_device device
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+/* it looks like these have been removed from the kernel 3.1
|
||||||
|
+ * probably because the "transition" is considered complete.
|
||||||
|
+ * so to keep this source compatible we just redefine them like they were
|
||||||
|
+ * previously
|
||||||
|
+ */
|
||||||
|
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0)
|
||||||
|
+#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
|
||||||
|
+ functions are available. */
|
||||||
|
+#define HAVE_FREE_NETDEV /* free_netdev() */
|
||||||
|
+#define HAVE_NETDEV_PRIV /* netdev_priv() */
|
||||||
|
+#define HAVE_NETIF_QUEUE
|
||||||
|
+#define HAVE_NET_DEVICE_OPS
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SET_MODULE_OWNER appeared sometime during 2.3.x. It was setting
|
|
@ -0,0 +1,13 @@
|
||||||
|
diff --git a/vmblock-only/linux/control.c b/vmblock-only/linux/control.c
|
||||||
|
index 79716bd..2dd83fe 100644
|
||||||
|
--- a/vmblock-only/linux/control.c
|
||||||
|
+++ b/vmblock-only/linux/control.c
|
||||||
|
@@ -293,7 +293,7 @@ ExecuteBlockOp(const char __user *buf, // IN: buffer with name
|
||||||
|
|
||||||
|
retval = i < 0 ? -EINVAL : blockOp(name, blocker);
|
||||||
|
|
||||||
|
- putname(name);
|
||||||
|
+ __putname(name);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
--- a/vmblock-only/linux/inode.c 2013-03-20 17:37:48.000000000 +0100
|
||||||
|
+++ b/vmblock-only/linux/inode.c 2013-03-20 17:41:22.000000000 +0100
|
||||||
|
@@ -135,7 +135,8 @@
|
||||||
|
inode->i_size = INODE_TO_IINFO(inode)->nameLen;
|
||||||
|
inode->i_version = 1;
|
||||||
|
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||||
|
- inode->i_uid = inode->i_gid = 0;
|
||||||
|
+ inode->i_uid = GLOBAL_ROOT_UID;
|
||||||
|
+ inode->i_gid = GLOBAL_ROOT_GID;
|
||||||
|
inode->i_op = &LinkInodeOps;
|
||||||
|
|
||||||
|
d_add(dentry, inode);
|
||||||
|
|
||||||
|
--- a/vmci-only/linux/driver.c 2013-03-20 17:57:35.000000000 +0100
|
||||||
|
+++ b/vmci-only/linux/driver.c 2013-03-20 17:57:43.000000000 +0100
|
||||||
|
@@ -740,7 +740,7 @@
|
||||||
|
goto init_release;
|
||||||
|
}
|
||||||
|
|
||||||
|
- user = current_uid();
|
||||||
|
+ user = from_kuid(current_user_ns(), current_uid());
|
||||||
|
retval = VMCIContext_InitContext(initBlock.cid, initBlock.flags,
|
||||||
|
0 /* Unused */, vmciLinux->userVersion,
|
||||||
|
&user, &vmciLinux->context);
|
||||||
|
|
||||||
|
--- a/vsock-only/linux/af_vsock.c 2013-03-20 18:01:48.000000000 +0100
|
||||||
|
+++ b/vsock-only/linux/af_vsock.c 2013-03-20 18:01:58.000000000 +0100
|
||||||
|
@@ -2866,7 +2866,7 @@
|
||||||
|
vsk->connectTimeout = psk->connectTimeout;
|
||||||
|
} else {
|
||||||
|
vsk->trusted = capable(CAP_NET_ADMIN);
|
||||||
|
- vsk->owner = current_uid();
|
||||||
|
+ vsk->owner = from_kuid(current_user_ns(), current_uid());
|
||||||
|
vsk->queuePairSize = VSOCK_DEFAULT_QP_SIZE;
|
||||||
|
vsk->queuePairMinSize = VSOCK_DEFAULT_QP_SIZE_MIN;
|
||||||
|
vsk->queuePairMaxSize = VSOCK_DEFAULT_QP_SIZE_MAX;
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
--- a/vmblock-only/linux/file.c
|
||||||
|
+++ b/vmblock-only/linux/file.c
|
||||||
|
@@ -38,46 +38,6 @@ typedef u64 inode_num_t;
|
||||||
|
typedef ino_t inode_num_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-/* Specifically for our filldir_t callback */
|
||||||
|
-typedef struct FilldirInfo {
|
||||||
|
- filldir_t filldir;
|
||||||
|
- void *dirent;
|
||||||
|
-} FilldirInfo;
|
||||||
|
-
|
||||||
|
-
|
||||||
|
-/*
|
||||||
|
- *----------------------------------------------------------------------------
|
||||||
|
- *
|
||||||
|
- * Filldir --
|
||||||
|
- *
|
||||||
|
- * Callback function for readdir that we use in place of the one provided.
|
||||||
|
- * This allows us to specify that each dentry is a symlink, but pass through
|
||||||
|
- * everything else to the original filldir function.
|
||||||
|
- *
|
||||||
|
- * Results:
|
||||||
|
- * Original filldir's return value.
|
||||||
|
- *
|
||||||
|
- * Side effects:
|
||||||
|
- * Directory information gets copied to user's buffer.
|
||||||
|
- *
|
||||||
|
- *----------------------------------------------------------------------------
|
||||||
|
- */
|
||||||
|
-
|
||||||
|
-static int
|
||||||
|
-Filldir(void *buf, // IN: Dirent buffer passed from FileOpReaddir
|
||||||
|
- const char *name, // IN: Dirent name
|
||||||
|
- int namelen, // IN: len of dirent's name
|
||||||
|
- loff_t offset, // IN: Offset
|
||||||
|
- inode_num_t ino, // IN: Inode number of dirent
|
||||||
|
- unsigned int d_type) // IN: Type of file
|
||||||
|
-{
|
||||||
|
- FilldirInfo *info = buf;
|
||||||
|
-
|
||||||
|
- /* Specify DT_LNK regardless */
|
||||||
|
- return info->filldir(info->dirent, name, namelen, offset, ino, DT_LNK);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-
|
||||||
|
/* File operations */
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -166,11 +126,10 @@ FileOpOpen(struct inode *inode, // IN
|
||||||
|
|
||||||
|
static int
|
||||||
|
FileOpReaddir(struct file *file, // IN
|
||||||
|
- void *dirent, // IN
|
||||||
|
- filldir_t filldir) // IN
|
||||||
|
+ struct dir_context *ctx) // IN
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
- FilldirInfo info;
|
||||||
|
+
|
||||||
|
struct file *actualFile;
|
||||||
|
|
||||||
|
if (!file) {
|
||||||
|
@@ -184,12 +143,10 @@ FileOpReaddir(struct file *file, // IN
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- info.filldir = filldir;
|
||||||
|
- info.dirent = dirent;
|
||||||
|
-
|
||||||
|
- actualFile->f_pos = file->f_pos;
|
||||||
|
- ret = vfs_readdir(actualFile, Filldir, &info);
|
||||||
|
- file->f_pos = actualFile->f_pos;
|
||||||
|
+ /* Ricky Wong Yung Fei:
|
||||||
|
+ * Manipulation of pos is now handled internally by iterate_dir().
|
||||||
|
+ */
|
||||||
|
+ ret = iterate_dir(actualFile, ctx);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@@ -237,7 +194,7 @@ FileOpRelease(struct inode *inode, // IN
|
||||||
|
|
||||||
|
|
||||||
|
struct file_operations RootFileOps = {
|
||||||
|
- .readdir = FileOpReaddir,
|
||||||
|
+ .iterate = FileOpReaddir,
|
||||||
|
.open = FileOpOpen,
|
||||||
|
.release = FileOpRelease,
|
||||||
|
};
|
|
@ -0,0 +1,79 @@
|
||||||
|
--- a/vmblock-only/linux/control.c 2013-10-03 04:29:47.471339204 -0400
|
||||||
|
+++ b/vmblock-only/linux/control.c 2013-10-03 04:31:56.607334636 -0400
|
||||||
|
@@ -283,7 +283,7 @@
|
||||||
|
int i;
|
||||||
|
int retval;
|
||||||
|
|
||||||
|
- name = getname(buf);
|
||||||
|
+ name = __getname();
|
||||||
|
if (IS_ERR(name)) {
|
||||||
|
return PTR_ERR(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ i = strncpy_from_user(name, buf, PATH_MAX);
|
||||||
|
+ if (i < 0 || i == PATH_MAX) {
|
||||||
|
+ __putname(name);
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
for (i = strlen(name) - 1; i >= 0 && name[i] == '/'; i--) {
|
||||||
|
name[i] = '\0';
|
||||||
|
}
|
||||||
|
--- a/vmblock-only/linux/dentry.c 2013-10-03 04:29:47.471339204 -0400
|
||||||
|
+++ b/vmblock-only/linux/dentry.c 2013-10-03 04:31:56.607334636 -0400
|
||||||
|
@@ -32,7 +32,7 @@
|
||||||
|
#include "block.h"
|
||||||
|
|
||||||
|
|
||||||
|
-static int DentryOpRevalidate(struct dentry *dentry, struct nameidata *nd);
|
||||||
|
+static int DentryOpRevalidate(struct dentry *dentry, unsigned int flags);
|
||||||
|
|
||||||
|
struct dentry_operations LinkDentryOps = {
|
||||||
|
.d_revalidate = DentryOpRevalidate,
|
||||||
|
@@ -60,7 +60,7 @@
|
||||||
|
|
||||||
|
static int
|
||||||
|
DentryOpRevalidate(struct dentry *dentry, // IN: dentry revalidating
|
||||||
|
- struct nameidata *nd) // IN: lookup flags & intent
|
||||||
|
+ unsigned int flags) // IN: lookup flags & intent
|
||||||
|
{
|
||||||
|
VMBlockInodeInfo *iinfo;
|
||||||
|
struct nameidata actualNd;
|
||||||
|
@@ -101,7 +101,7 @@
|
||||||
|
if (actualDentry &&
|
||||||
|
actualDentry->d_op &&
|
||||||
|
actualDentry->d_op->d_revalidate) {
|
||||||
|
- return actualDentry->d_op->d_revalidate(actualDentry, nd);
|
||||||
|
+ return actualDentry->d_op->d_revalidate(actualDentry, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (compat_path_lookup(iinfo->name, 0, &actualNd)) {
|
||||||
|
--- a/vmblock-only/linux/inode.c 2013-10-03 04:29:47.471339204 -0400
|
||||||
|
+++ b/vmblock-only/linux/inode.c 2013-10-03 04:31:56.607334636 -0400
|
||||||
|
@@ -36,7 +36,7 @@
|
||||||
|
|
||||||
|
/* Inode operations */
|
||||||
|
static struct dentry *InodeOpLookup(struct inode *dir,
|
||||||
|
- struct dentry *dentry, struct nameidata *nd);
|
||||||
|
+ struct dentry *dentry, unsigned int flags);
|
||||||
|
static int InodeOpReadlink(struct dentry *dentry, char __user *buffer, int buflen);
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
||||||
|
static void *InodeOpFollowlink(struct dentry *dentry, struct nameidata *nd);
|
||||||
|
@@ -75,7 +75,7 @@
|
||||||
|
static struct dentry *
|
||||||
|
InodeOpLookup(struct inode *dir, // IN: parent directory's inode
|
||||||
|
struct dentry *dentry, // IN: dentry to lookup
|
||||||
|
- struct nameidata *nd) // IN: lookup intent and information
|
||||||
|
+ unsigned int flags) // IN: lookup intent and information
|
||||||
|
{
|
||||||
|
char *filename;
|
||||||
|
struct inode *inode;
|
||||||
|
@@ -221,7 +221,7 @@
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = vfs_follow_link(nd, iinfo->name);
|
||||||
|
+ nd_set_link(nd, iinfo->name);
|
||||||
|
|
||||||
|
out:
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
|
|
@ -0,0 +1,23 @@
|
||||||
|
diff -ruN work.orig/vmblock-only/linux/control.c work/vmblock-only/linux/control.c
|
||||||
|
--- work.orig/vmblock-only/linux/control.c 2013-11-02 18:05:39.960226399 +0100
|
||||||
|
+++ work/vmblock-only/linux/control.c 2013-11-02 18:09:11.760231432 +0100
|
||||||
|
@@ -208,17 +208,14 @@
|
||||||
|
VMBlockSetProcEntryOwner(controlProcMountpoint);
|
||||||
|
|
||||||
|
/* Create /proc/fs/vmblock/dev */
|
||||||
|
- controlProcEntry = create_proc_entry(VMBLOCK_CONTROL_DEVNAME,
|
||||||
|
- VMBLOCK_CONTROL_MODE,
|
||||||
|
- controlProcDirEntry);
|
||||||
|
- if (!controlProcEntry) {
|
||||||
|
+ controlProcEntry = proc_create(VMBLOCK_CONTROL_DEVNAME, VMBLOCK_CONTROL_MODE, controlProcDirEntry, &ControlFileOps);
|
||||||
|
+ if (controlProcEntry == NULL) {
|
||||||
|
Warning("SetupProcDevice: could not create " VMBLOCK_DEVICE "\n");
|
||||||
|
remove_proc_entry(VMBLOCK_CONTROL_MOUNTPOINT, controlProcDirEntry);
|
||||||
|
remove_proc_entry(VMBLOCK_CONTROL_PROC_DIRNAME, NULL);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- controlProcEntry->proc_fops = &ControlFileOps;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
# Copyright 1999-2014 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-279.2.ebuild,v 1.1 2014/04/19 10:10:25 dilfridge Exp $
|
||||||
|
|
||||||
|
EAPI=5
|
||||||
|
|
||||||
|
inherit eutils flag-o-matic linux-info linux-mod user versionator udev
|
||||||
|
|
||||||
|
PV_MAJOR=$(get_major_version)
|
||||||
|
PV_MINOR=$(get_version_component_range 2)
|
||||||
|
|
||||||
|
DESCRIPTION="VMware kernel modules"
|
||||||
|
HOMEPAGE="http://www.vmware.com/"
|
||||||
|
|
||||||
|
SRC_URI=""
|
||||||
|
|
||||||
|
LICENSE="GPL-2"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64 ~x86"
|
||||||
|
IUSE="pax_kernel +vmci +vsock"
|
||||||
|
|
||||||
|
RDEPEND=""
|
||||||
|
DEPEND="${RDEPEND}
|
||||||
|
|| ( =app-emulation/vmware-player-6.0.${PV_MINOR}*
|
||||||
|
=app-emulation/vmware-workstation-10.0.${PV_MINOR}* )"
|
||||||
|
|
||||||
|
S=${WORKDIR}
|
||||||
|
|
||||||
|
pkg_setup() {
|
||||||
|
CONFIG_CHECK="~HIGH_RES_TIMERS"
|
||||||
|
if kernel_is ge 2 6 37 && kernel_is lt 2 6 39; then
|
||||||
|
CONFIG_CHECK="${CONFIG_CHECK} BKL"
|
||||||
|
fi
|
||||||
|
if use vmci ; then
|
||||||
|
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI"
|
||||||
|
else
|
||||||
|
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI"
|
||||||
|
fi
|
||||||
|
if use vsock ; then
|
||||||
|
CONFIG_CHECK="${CONFIG_CHECK} !VMWARE_VMCI_VSOCKETS"
|
||||||
|
else
|
||||||
|
CONFIG_CHECK="${CONFIG_CHECK} VMWARE_VMCI_VSOCKETS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
linux-info_pkg_setup
|
||||||
|
|
||||||
|
linux-mod_pkg_setup
|
||||||
|
|
||||||
|
VMWARE_GROUP=${VMWARE_GROUP:-vmware}
|
||||||
|
|
||||||
|
VMWARE_MODULE_LIST_ALL="vmblock vmmon vmnet vmci vsock"
|
||||||
|
VMWARE_MODULE_LIST="vmblock vmmon vmnet"
|
||||||
|
use vmci && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vmci"
|
||||||
|
use vsock && VMWARE_MODULE_LIST="${VMWARE_MODULE_LIST} vsock"
|
||||||
|
|
||||||
|
VMWARE_MOD_DIR="${PN}-${PVR}"
|
||||||
|
|
||||||
|
BUILD_TARGETS="auto-build KERNEL_DIR=${KERNEL_DIR} KBUILD_OUTPUT=${KV_OUT_DIR}"
|
||||||
|
|
||||||
|
enewgroup "${VMWARE_GROUP}"
|
||||||
|
filter-flags -mfpmath=sse
|
||||||
|
|
||||||
|
for mod in ${VMWARE_MODULE_LIST}; do
|
||||||
|
MODULE_NAMES="${MODULE_NAMES} ${mod}(misc:${S}/${mod}-only)"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_unpack() {
|
||||||
|
cd "${S}"
|
||||||
|
for mod in ${VMWARE_MODULE_LIST_ALL}; do
|
||||||
|
tar -xf /opt/vmware/lib/vmware/modules/source/${mod}.tar
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
epatch "${FILESDIR}/${PV_MAJOR}-makefile-kernel-dir.patch"
|
||||||
|
epatch "${FILESDIR}/${PV_MAJOR}-makefile-include.patch"
|
||||||
|
epatch "${FILESDIR}/${PV_MAJOR}-netdevice.patch"
|
||||||
|
use pax_kernel && epatch "${FILESDIR}/279-hardened.patch"
|
||||||
|
epatch "${FILESDIR}/${PV_MAJOR}-apic.patch"
|
||||||
|
kernel_is ge 3 7 0 && epatch "${FILESDIR}/${PV_MAJOR}-putname.patch"
|
||||||
|
kernel_is ge 3 10 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock.patch"
|
||||||
|
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock-3.11.patch"
|
||||||
|
kernel_is ge 3 12 0 && epatch "${FILESDIR}/${PV_MAJOR}-vmblock-3.12.patch"
|
||||||
|
kernel_is ge 3 11 0 && epatch "${FILESDIR}/${PV_MAJOR}-userns.patch"
|
||||||
|
|
||||||
|
# Allow user patches so they can support RC kernels and whatever else
|
||||||
|
epatch_user
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
linux-mod_src_install
|
||||||
|
local udevrules="${T}/60-vmware.rules"
|
||||||
|
cat > "${udevrules}" <<-EOF
|
||||||
|
KERNEL=="vmci", GROUP="vmware", MODE=660
|
||||||
|
KERNEL=="vmw_vmci", GROUP="vmware", MODE=660
|
||||||
|
KERNEL=="vmmon", GROUP="vmware", MODE=660
|
||||||
|
KERNEL=="vsock", GROUP="vmware", MODE=660
|
||||||
|
EOF
|
||||||
|
udev_dorules "${udevrules}"
|
||||||
|
}
|
Loading…
Reference in New Issue