summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Auty <ikelos@gentoo.org>2009-05-16 07:33:21 +0000
committerMike Auty <ikelos@gentoo.org>2009-05-16 07:33:21 +0000
commit48aa37a2b74f4daede3c0539e4093441e9017567 (patch)
treed335b5b46d703161e74e6167de8a9a58108a5f90 /app-emulation/vmware-modules/files
parentMigration to virtual/libusb. Verified by code inspection. (diff)
downloadgentoo-2-48aa37a2b74f4daede3c0539e4093441e9017567.tar.gz
gentoo-2-48aa37a2b74f4daede3c0539e4093441e9017567.tar.bz2
gentoo-2-48aa37a2b74f4daede3c0539e4093441e9017567.zip
Version bump vmware-modules for 2.6.29 support.
(Portage version: 2.2_rc33/cvs/Linux i686)
Diffstat (limited to 'app-emulation/vmware-modules/files')
-rw-r--r--app-emulation/vmware-modules/files/1.0.0.23-r1-kernel-2.6.29.patch288
1 files changed, 288 insertions, 0 deletions
diff --git a/app-emulation/vmware-modules/files/1.0.0.23-r1-kernel-2.6.29.patch b/app-emulation/vmware-modules/files/1.0.0.23-r1-kernel-2.6.29.patch
new file mode 100644
index 000000000000..a4ad6e9ae5f6
--- /dev/null
+++ b/app-emulation/vmware-modules/files/1.0.0.23-r1-kernel-2.6.29.patch
@@ -0,0 +1,288 @@
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmblock-only/Makefile.kernel vmware-modules-1.0.0.23-r1/work/vmblock-only/Makefile.kernel
+--- vmware-modules-1.0.0.23-r1.0/work/vmblock-only/Makefile.kernel 2009-03-27 08:05:21.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmblock-only/Makefile.kernel 2009-04-07 16:14:55.000000000 +0400
+@@ -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, $(SRCROOT)/autoconf/setnice.c, -DVMW_HAVE_SET_USER_NICE, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, )
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmci-only/Makefile.kernel vmware-modules-1.0.0.23-r1/work/vmci-only/Makefile.kernel
+--- vmware-modules-1.0.0.23-r1.0/work/vmci-only/Makefile.kernel 2009-03-27 08:05:22.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmci-only/Makefile.kernel 2009-04-07 16:14:55.000000000 +0400
+@@ -21,7 +21,7 @@
+
+ INCLUDE := -I$(SRCROOT)/include -I$(SRCROOT)/common -I$(SRCROOT)/linux
+
+-EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE)
++EXTRA_CFLAGS := $(CC_OPTS) $(INCLUDE) $(LINUXINCLUDE)
+
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, )
+
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmmon-only/linux/driver.c vmware-modules-1.0.0.23-r1/work/vmmon-only/linux/driver.c
+--- vmware-modules-1.0.0.23-r1.0/work/vmmon-only/linux/driver.c 2009-03-27 08:05:19.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmmon-only/linux/driver.c 2009-04-07 16:15:11.000000000 +0400
+@@ -1984,10 +1984,10 @@
+ }
+
+ case IOCTL_VMX86_ALLOW_CORE_DUMP:
+- if (current->euid == current->uid &&
+- current->fsuid == current->uid &&
+- current->egid == current->gid &&
+- current->fsgid == current->gid) {
++ if (current_euid() == current_uid() &&
++ current_fsuid() == current_uid() &&
++ current_egid() == current_gid() &&
++ current_fsgid() == current_gid()) {
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) || defined(MMF_DUMPABLE)
+ /* Dump core, readable by user. */
+ set_bit(MMF_DUMPABLE, &current->mm->flags);
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmmon-only/linux/hostif.c vmware-modules-1.0.0.23-r1/work/vmmon-only/linux/hostif.c
+--- vmware-modules-1.0.0.23-r1.0/work/vmmon-only/linux/hostif.c 2009-03-27 08:05:18.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmmon-only/linux/hostif.c 2009-04-07 16:19:05.000000000 +0400
+@@ -3424,6 +3424,82 @@
+ }
+
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
++static inline
++void compat_cap_raise(int cap)
++{
++ cap_raise(current->cap_effective, cap);
++}
++#else
++static
++void compat_cap_raise(int cap)
++{
++ struct cred *new_cred;
++
++ new_cred = prepare_creds();
++ if (new_cred != NULL)
++ {
++ cap_raise(new_cred->cap_effective, cap);
++ commit_creds(new_cred);
++ }
++ else
++ {
++ Log("compat_cap_raise(%d) prepare_creds(): Out of memory\n", cap);
++ }
++}
++#endif
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
++static inline
++void compat_cap_lower(int cap)
++{
++ cap_lower(current->cap_effective, cap);
++}
++#else
++static
++void compat_cap_lower(int cap)
++{
++ struct cred *new_cred;
++
++ new_cred = prepare_creds();
++ if (new_cred != NULL)
++ {
++ cap_lower(new_cred->cap_effective, cap);
++ commit_creds(new_cred);
++ }
++ else
++ {
++ Log("compat_cap_lower(%d) prepare_creds(): Out of memory\n", cap);
++ }
++}
++#endif
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
++static inline
++void compat_set_fsuid(int fsuid)
++{
++ current->fsuid = fsuid;
++}
++#else
++static
++void compat_set_fsuid(int fsuid)
++{
++ struct cred *new_cred;
++
++ new_cred = prepare_creds();
++ if (new_cred != NULL)
++ {
++ new_cred->fsuid = fsuid;
++ commit_creds(new_cred);
++ }
++ else
++ {
++ Log("compat_set_fsuid(%d) prepare_creds(): Out of memory\n", fsuid);
++ }
++}
++#endif
++
++
+ /*
+ *----------------------------------------------------------------------
+ *
+@@ -3456,7 +3532,7 @@
+ oldFS = get_fs();
+ set_fs(KERNEL_DS);
+ compat_allow_signal(SIGKILL);
+- cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
++ compat_cap_raise(CAP_SYS_RESOURCE);
+ compat_set_user_nice(current, linuxState.fastClockPriority);
+
+ while (linuxState.fastClockRate > HZ + HZ/16) {
+@@ -3580,19 +3656,19 @@
+ Bool cap;
+ long pid;
+
+- fsuid = current->fsuid;
+- current->fsuid = 0;
++ fsuid = current_fsuid();
++ compat_set_fsuid(0);
+ filp = filp_open("/dev/rtc", O_RDONLY, 0);
+- current->fsuid = fsuid;
++ compat_set_fsuid(fsuid);
+ if (IS_ERR(filp)) {
+ Warning("/dev/rtc open failed: %d\n", (int)(VA)filp);
+ return -(int)(VA)filp;
+ }
+- cap = cap_raised(current->cap_effective, CAP_SYS_RESOURCE);
+- cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
++ cap = cap_raised(current_cap(), CAP_SYS_RESOURCE);
++ compat_cap_raise(CAP_SYS_RESOURCE);
+ res = HostIFDoIoctl(filp, RTC_PIE_ON, 0);
+ if (!cap) {
+- cap_lower(current->cap_effective, CAP_SYS_RESOURCE);
++ compat_cap_lower(CAP_SYS_RESOURCE);
+ }
+ if (res < 0) {
+ Warning("/dev/rtc enable interrupt failed: %d\n", res);
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmmon-only/Makefile.kernel vmware-modules-1.0.0.23-r1/work/vmmon-only/Makefile.kernel
+--- vmware-modules-1.0.0.23-r1.0/work/vmmon-only/Makefile.kernel 2009-03-27 08:05:19.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmmon-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400
+@@ -22,7 +22,7 @@
+ 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/nopage1.c, -DVMW_NOPAGE_261, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/skas1.c, -DVMW_SKAS_MMAP, )
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmnet-only/Makefile.kernel vmware-modules-1.0.0.23-r1/work/vmnet-only/Makefile.kernel
+--- vmware-modules-1.0.0.23-r1.0/work/vmnet-only/Makefile.kernel 2009-03-27 08:05:20.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmnet-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400
+@@ -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)/epoll.c, -DVMW_HAVE_EPOLL, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/socket.c, -DVMW_HAVE_SK_WMEM_ALLOC, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/sk_alloc.c,-DVMW_HAVE_SK_ALLOC_WITH_PROTO, )
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vmnet-only/netif.c vmware-modules-1.0.0.23-r1/work/vmnet-only/netif.c
+--- vmware-modules-1.0.0.23-r1.0/work/vmnet-only/netif.c 2009-03-27 08:05:20.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vmnet-only/netif.c 2009-04-07 16:15:21.000000000 +0400
+@@ -55,6 +55,30 @@
+ struct net_device_stats stats;
+ } VNetNetIF;
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
++/*
++ Prior to KERNEL_VERSION(2, 6, 29) "struct net_device" had "void
++ *priv" field which was used as pointer to "VNetNetIF".
++*/
++
++#define VNetNetIF_netdev_priv_size 0
++
++#define VNetNetIF_netdev_netIf(dev) (*(VNetNetIF**)&((dev)->priv))
++
++#else
++/*
++ Since KERNEL_VERSION(2, 6, 29) pointer to "VNetNetIF" is stored in
++ explicitly allocated private area.
++*/
++typedef struct {
++ VNetNetIF *netIf;
++} VNetNetIF_netdev_priv;
++
++#define VNetNetIF_netdev_priv_size sizeof(VNetNetIF_netdev_priv)
++
++#define VNetNetIF_netdev_netIf(dev) (((VNetNetIF_netdev_priv *)compat_netdev_priv(dev))->netIf)
++
++#endif
+
+ static void VNetNetIfFree(VNetJack *this);
+ static void VNetNetIfReceive(VNetJack *this, struct sk_buff *skb);
+@@ -318,13 +342,13 @@
+ memcpy(netIf->devName, devName, sizeof netIf->devName);
+ NULL_TERMINATE_STRING(netIf->devName);
+
+- dev = compat_alloc_netdev(0, netIf->devName, VNetNetIfSetup);
++ dev = compat_alloc_netdev(VNetNetIF_netdev_priv_size, netIf->devName, VNetNetIfSetup);
+ if (!dev) {
+ retval = -ENOMEM;
+ goto out;
+ }
+
+- dev->priv = netIf;
++ VNetNetIF_netdev_netIf(dev) = netIf;
+ netIf->dev = dev;
+
+ memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr);
+@@ -566,7 +590,7 @@
+ VNetNetifStartXmit(struct sk_buff *skb, // IN:
+ struct net_device *dev) // IN:
+ {
+- VNetNetIF *netIf = (VNetNetIF*)dev->priv;
++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev);
+
+ if(skb == NULL) {
+ return 0;
+@@ -618,7 +642,7 @@
+ VNetNetifSetMAC(struct net_device *dev, // IN:
+ void *p) // IN:
+ {
+- VNetNetIF *netIf = (VNetNetIF*)dev->priv;
++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev);
+ struct sockaddr const *addr = p;
+ if (!VMX86_IS_STATIC_MAC(addr->sa_data)) {
+ return -EINVAL;
+@@ -675,7 +699,7 @@
+ struct net_device_stats *
+ VNetNetifGetStats(struct net_device *dev) // IN:
+ {
+- VNetNetIF *netIf = (VNetNetIF*)dev->priv;
++ VNetNetIF *netIf = VNetNetIF_netdev_netIf(dev);
+ return &(netIf->stats);
+ }
+
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vsock-only/linux/util.c vmware-modules-1.0.0.23-r1/work/vsock-only/linux/util.c
+--- vmware-modules-1.0.0.23-r1.0/work/vsock-only/linux/util.c 2009-03-27 08:05:23.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vsock-only/linux/util.c 2009-04-07 16:15:21.000000000 +0400
+@@ -154,7 +154,7 @@
+ goto error;
+ }
+
+- Log(buf);
++ Log("%s", buf);
+
+ return;
+
+diff -ur vmware-modules-1.0.0.23-r1.0/work/vsock-only/Makefile.kernel vmware-modules-1.0.0.23-r1/work/vsock-only/Makefile.kernel
+--- vmware-modules-1.0.0.23-r1.0/work/vsock-only/Makefile.kernel 2009-03-27 08:05:23.000000000 +0300
++++ vmware-modules-1.0.0.23-r1/work/vsock-only/Makefile.kernel 2009-04-07 16:15:21.000000000 +0400
+@@ -25,7 +25,7 @@
+ 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, $(SRCROOT)/autoconf/epoll.c, -DVMW_HAVE_EPOLL, )
+ EXTRA_CFLAGS += $(call vm_check_build, $(SRCROOT)/autoconf/setnice.c, -DVMW_HAVE_SET_USER_NICE, )
+