diff -Naur orig/vmblock-only/include/compat_wait.h new/vmblock-only/include/compat_wait.h
--- orig/vmblock-only/include/compat_wait.h	2008-10-28 22:47:20.000000000 -0700
+++ new/vmblock-only/include/compat_wait.h	2009-01-20 04:49:44.000000000 -0700
@@ -75,7 +75,11 @@
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // {
 
 /* If prototype does not match, build will abort here */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 extern void poll_initwait(compat_poll_wqueues *);
+#else
+extern void poll_initwait(struct poll_wqueues *pwq);
+#endif
 
 #define compat_poll_initwait(wait, table) ( \
    (wait) = (table), \
diff -Naur orig/vmblock-only/modules.order new/vmblock-only/modules.order
--- orig/vmblock-only/modules.order	1969-12-31 17:00:00.000000000 -0700
+++ new/vmblock-only/modules.order	2009-01-20 04:49:44.000000000 -0700
@@ -0,0 +1 @@
+kernel//usr/local/src/vmware-workstation-2.6.29-rc1/vmblock-only/vmblock.ko
diff -Naur orig/vmci-only/include/compat_wait.h new/vmci-only/include/compat_wait.h
--- orig/vmci-only/include/compat_wait.h	2008-10-28 22:47:21.000000000 -0700
+++ new/vmci-only/include/compat_wait.h	2009-01-20 04:49:44.000000000 -0700
@@ -75,7 +75,11 @@
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // {
 
 /* If prototype does not match, build will abort here */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 extern void poll_initwait(compat_poll_wqueues *);
+#else
+extern void poll_initwait(struct poll_wqueues *pwq);
+#endif
 
 #define compat_poll_initwait(wait, table) ( \
    (wait) = (table), \
diff -Naur orig/vmci-only/linux/.driver.o.d new/vmci-only/linux/.driver.o.d
--- orig/vmci-only/linux/.driver.o.d	2009-01-20 04:55:35.000000000 -0700
+++ new/vmci-only/linux/.driver.o.d	1969-12-31 17:00:00.000000000 -0700
@@ -1,223 +0,0 @@
-driver.o: /usr/lib/vmware/modules/source/vmci-only/linux/driver.c \
-  include/linux/autoconf.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/driver-config.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/includeCheck.h \
-  include/linux/autoconf.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_version.h \
-  include/linux/version.h include/linux/types.h \
-  include/linux/posix_types.h include/linux/stddef.h \
-  include/linux/compiler.h include/linux/compiler-gcc.h \
-  include/linux/compiler-gcc4.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/posix_types.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/posix_types_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/types.h \
-  include/asm-generic/int-ll64.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_version.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_kernel.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/unistd.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/unistd_64.h \
-  include/linux/kernel.h \
-  /usr/lib/gcc/x86_64-linux-gnu/4.3.2/include/stdarg.h \
-  include/linux/linkage.h /home/2.6.29/rc2/arch/x86/include/asm/linkage.h \
-  include/linux/bitops.h /home/2.6.29/rc2/arch/x86/include/asm/bitops.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/alternative.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/asm.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/cpufeature.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/required-features.h \
-  include/asm-generic/bitops/sched.h include/asm-generic/bitops/hweight.h \
-  include/asm-generic/bitops/fls64.h \
-  include/asm-generic/bitops/ext2-non-atomic.h \
-  include/asm-generic/bitops/le.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/byteorder.h \
-  include/linux/byteorder/little_endian.h include/linux/swab.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/swab.h \
-  include/linux/byteorder/generic.h include/asm-generic/bitops/minix.h \
-  include/linux/log2.h include/linux/typecheck.h \
-  include/linux/ratelimit.h include/linux/param.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/param.h \
-  include/linux/dynamic_printk.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/bug.h include/asm-generic/bug.h \
-  include/linux/miscdevice.h include/linux/module.h include/linux/list.h \
-  include/linux/poison.h include/linux/prefetch.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/processor.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/processor-flags.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/vm86.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ptrace.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ptrace-abi.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/segment.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/cache.h include/linux/init.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/math_emu.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/sigcontext.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/current.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/pda.h include/linux/cache.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/page.h include/linux/const.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/page_64.h \
-  include/asm-generic/memory_model.h include/asm-generic/page.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/system.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/cmpxchg.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/cmpxchg_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/nops.h include/linux/irqflags.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/irqflags.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/percpu.h \
-  include/asm-generic/percpu.h include/linux/threads.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/msr.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/msr-index.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/errno.h \
-  include/asm-generic/errno.h include/asm-generic/errno-base.h \
-  include/linux/errno.h /home/2.6.29/rc2/arch/x86/include/asm/desc_defs.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ds.h include/linux/err.h \
-  include/linux/personality.h include/linux/cpumask.h \
-  include/linux/bitmap.h include/linux/string.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/string.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/string_64.h include/linux/stat.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/stat.h include/linux/time.h \
-  include/linux/seqlock.h include/linux/spinlock.h \
-  include/linux/preempt.h include/linux/thread_info.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/thread_info.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ftrace.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/atomic.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/atomic_64.h \
-  include/asm-generic/atomic.h include/linux/stringify.h \
-  include/linux/bottom_half.h include/linux/spinlock_types.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/spinlock_types.h \
-  include/linux/lockdep.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/spinlock.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/rwlock.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/paravirt.h \
-  include/linux/spinlock_api_smp.h include/linux/math64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/div64.h \
-  include/asm-generic/div64.h include/linux/kmod.h include/linux/gfp.h \
-  include/linux/mmzone.h include/linux/wait.h include/linux/numa.h \
-  include/linux/nodemask.h include/linux/pageblock-flags.h \
-  include/linux/bounds.h include/linux/memory_hotplug.h \
-  include/linux/notifier.h include/linux/mutex.h include/linux/rwsem.h \
-  include/linux/rwsem-spinlock.h include/linux/srcu.h \
-  include/linux/topology.h include/linux/smp.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/smp.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/mpspec.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/mpspec_def.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/apic.h include/linux/pm.h \
-  include/linux/delay.h /home/2.6.29/rc2/arch/x86/include/asm/delay.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/fixmap.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/fixmap_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/acpi.h include/acpi/pdc_intel.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/numa.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/numa_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/apicdef.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/mmu.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/vsyscall.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/efi.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/io_apic.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/irq_vectors.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/topology.h \
-  include/asm-generic/topology.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/mmzone.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/mmzone_64.h \
-  include/linux/mmdebug.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/sparsemem.h include/linux/elf.h \
-  include/linux/elf-em.h /home/2.6.29/rc2/arch/x86/include/asm/elf.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/user.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/user_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/auxvec.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/vdso.h include/linux/kobject.h \
-  include/linux/sysfs.h include/linux/kref.h include/linux/moduleparam.h \
-  include/linux/marker.h include/linux/tracepoint.h \
-  include/linux/rcupdate.h include/linux/percpu.h include/linux/slab.h \
-  include/linux/slub_def.h include/linux/workqueue.h \
-  include/linux/timer.h include/linux/ktime.h include/linux/jiffies.h \
-  include/linux/timex.h /home/2.6.29/rc2/arch/x86/include/asm/timex.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/tsc.h \
-  include/linux/debugobjects.h include/linux/completion.h \
-  include/linux/rcutree.h /home/2.6.29/rc2/arch/x86/include/asm/local.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/module.h include/linux/major.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_module.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_sched.h \
-  include/linux/sched.h include/linux/capability.h include/linux/rbtree.h \
-  include/linux/mm_types.h include/linux/auxvec.h \
-  include/linux/prio_tree.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/cputime.h \
-  include/asm-generic/cputime.h include/linux/sem.h include/linux/ipc.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ipcbuf.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/sembuf.h include/linux/signal.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/signal.h \
-  include/asm-generic/signal.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/siginfo.h \
-  include/asm-generic/siginfo.h include/linux/fs_struct.h \
-  include/linux/path.h include/linux/pid.h include/linux/proportions.h \
-  include/linux/percpu_counter.h include/linux/seccomp.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/seccomp.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/seccomp_64.h \
-  include/linux/unistd.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ia32_unistd.h \
-  include/linux/rtmutex.h include/linux/plist.h include/linux/resource.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/resource.h \
-  include/asm-generic/resource.h include/linux/hrtimer.h \
-  include/linux/task_io_accounting.h include/linux/latencytop.h \
-  include/linux/cred.h include/linux/key.h include/linux/sysctl.h \
-  include/linux/aio.h include/linux/aio_abi.h include/linux/uio.h \
-  include/linux/freezer.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_file.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_slab.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_interrupt.h \
-  include/linux/interrupt.h include/linux/irqreturn.h \
-  include/linux/irqnr.h include/linux/hardirq.h include/linux/smp_lock.h \
-  include/linux/ftrace_irq.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/hardirq.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/hardirq_64.h include/linux/irq.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/irq.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/irq_regs.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/irq_regs_64.h \
-  include/asm-generic/irq_regs.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/hw_irq.h include/linux/profile.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/sections.h \
-  include/asm-generic/sections.h include/linux/poll.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/poll.h include/asm-generic/poll.h \
-  include/linux/fs.h include/linux/limits.h include/linux/ioctl.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/ioctl.h \
-  include/asm-generic/ioctl.h include/linux/kdev_t.h \
-  include/linux/dcache.h include/linux/rculist.h \
-  include/linux/radix-tree.h include/linux/semaphore.h \
-  include/linux/fiemap.h include/linux/quota.h include/linux/dqblk_xfs.h \
-  include/linux/dqblk_v1.h include/linux/dqblk_v2.h \
-  include/linux/dqblk_qtree.h include/linux/nfs_fs_i.h \
-  include/linux/nfs.h include/linux/sunrpc/msg_prot.h \
-  include/linux/fcntl.h /home/2.6.29/rc2/arch/x86/include/asm/fcntl.h \
-  include/asm-generic/fcntl.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/uaccess.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/uaccess_64.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/io.h \
-  /home/2.6.29/rc2/arch/x86/include/asm/io_64.h include/linux/vmalloc.h \
-  include/asm-generic/iomap.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmware.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vm_basic_types.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vm_basic_defs.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vm_assert.h \
-  /usr/lib/vmware/modules/source/vmci-only/linux/driverLog.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vm_assert.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/circList.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmware.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_defs.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_iocontrols.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_defs.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_kernel_if.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_wait.h \
-  include/linux/file.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_file.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_spinlock.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/compat_semaphore.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_infrastructure.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciCommonInt.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/includeCheck.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vm_atomic.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_call_defs.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_handle_array.h \
-  /usr/lib/vmware/modules/source/vmci-only/./include/vmci_kernel_if.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciDriver.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciContext.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciDatagram.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciProcess.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciDsInt.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciResource.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciHashtable.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciGroup.h \
-  /usr/lib/vmware/modules/source/vmci-only/./common/vmciQueuePair.h
diff -Naur orig/vmci-only/modules.order new/vmci-only/modules.order
--- orig/vmci-only/modules.order	1969-12-31 17:00:00.000000000 -0700
+++ new/vmci-only/modules.order	2009-01-20 04:53:47.000000000 -0700
@@ -0,0 +1 @@
+kernel//tmp/vmware/new/vmci-only/vmci.ko
diff -Naur orig/vmmon-only/include/compat_wait.h new/vmmon-only/include/compat_wait.h
--- orig/vmmon-only/include/compat_wait.h	2008-10-28 22:47:18.000000000 -0700
+++ new/vmmon-only/include/compat_wait.h	2009-01-20 04:49:44.000000000 -0700
@@ -75,7 +75,11 @@
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // {
 
 /* If prototype does not match, build will abort here */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 extern void poll_initwait(compat_poll_wqueues *);
+#else
+extern void poll_initwait(struct poll_wqueues *pwq);
+#endif
 
 #define compat_poll_initwait(wait, table) ( \
    (wait) = (table), \
diff -Naur orig/vmmon-only/include/x86apic.h new/vmmon-only/include/x86apic.h
--- orig/vmmon-only/include/x86apic.h	2008-10-28 22:47:17.000000000 -0700
+++ new/vmmon-only/include/x86apic.h	2009-01-20 04:49:44.000000000 -0700
@@ -94,7 +94,11 @@
 #define APIC_LVT_DELVMODE(_lvt) (_lvt & 0x700)
 #define APIC_LVT_RESET_VALUE  0x00010000
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 28)
 #define APIC_BASE_MSR         0x1b
+#else
+#define APIC_BASE_MSR	      0x800
+#endif
 
 #define APIC_MSR_BASEMASK     QWORD(0x0000000f,0xfffff000)
 #define APIC_MSR_ENABLED      0x00000800
diff -Naur orig/vmmon-only/linux/driver.c new/vmmon-only/linux/driver.c
--- orig/vmmon-only/linux/driver.c	2008-10-28 22:47:18.000000000 -0700
+++ new/vmmon-only/linux/driver.c	2009-01-20 04:49:44.000000000 -0700
@@ -1984,10 +1984,17 @@
    }
 
    case IOCTL_VMX86_ALLOW_CORE_DUMP:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
       if (current->euid == current->uid &&
 	  current->fsuid == current->uid &&
           current->egid == current->gid &&
 	  current->fsgid == current->gid) {
+#else /* 2.6.29 and higher */
+      if (current->cred->euid == current->cred->uid &&
+          current->cred->fsuid == current->cred->uid &&
+          current->cred->egid == current->cred->gid &&
+          current->cred->fsgid == current->cred->gid) {
+#endif /* 2.6.29 check */
 #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 -Naur orig/vmmon-only/linux/hostif.c new/vmmon-only/linux/hostif.c
--- orig/vmmon-only/linux/hostif.c	2008-10-28 22:47:17.000000000 -0700
+++ new/vmmon-only/linux/hostif.c	2009-01-20 04:49:44.000000000 -0700
@@ -2718,13 +2718,22 @@
    set_fs(get_ds());
 
    {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
       compat_poll_wqueues table;
       poll_table *wait;
+#else /* 2.6.29 and above */
+      struct poll_wqueues table;
+      struct poll_wqueues *wait;
+#endif /* 2.6.29 and above */
       unsigned int mask;
       
       compat_poll_initwait(wait, &table);
       current->state = TASK_INTERRUPTIBLE;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
       mask = file->f_op->poll(file, wait);
+#else
+      mask = file->f_op->poll(file, (poll_table *) wait);
+#endif /* 2.6.29 */
       if (!(mask & (POLLIN | POLLERR | POLLHUP))) {
 #ifdef KERNEL_2_4_0
 	 vm->vmhost->vcpuSemaTask[vcpuid] = current;
@@ -2743,7 +2752,6 @@
    }
 
    res = file->f_op->read(file, &ch, 1, &file->f_pos);
-
    set_fs(old_fs);
    compat_fput(file);
 
@@ -3455,8 +3463,13 @@
    oldFS = get_fs();
    set_fs(KERNEL_DS);
    compat_allow_signal(SIGKILL);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29) 
    cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
    compat_set_user_nice(current, linuxState.fastClockPriority);
+#else /* 2.6.29 */
+   (void) cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE);
+   set_user_nice(current, linuxState.fastClockPriority);
+#endif /* 2.6.29 and higher */   
 
    while (linuxState.fastClockRate > HZ + HZ/16) {
       unsigned long buf;
@@ -3579,19 +3592,38 @@
          Bool cap;
          long pid;
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
          fsuid = current->fsuid;
          current->fsuid = 0;
+#else
+	 fsuid = current->cred->fsuid;
+#warning	 current->cred->fsuid = 0;
+#endif /* 2.6.29 */
          filp = filp_open("/dev/rtc", O_RDONLY, 0);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
          current->fsuid = fsuid;
+#else
+#warning	 current->cred->fsuid = fsuid;
+#endif /* 2.6.29 */
          if (IS_ERR(filp)) {
             Warning("/dev/rtc open failed: %d\n", (int)(VA)filp);
             return -(int)(VA)filp;
          }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
          cap = cap_raised(current->cap_effective, CAP_SYS_RESOURCE);
          cap_raise(current->cap_effective, CAP_SYS_RESOURCE);
+#else /* 2.6.29 */
+         cap = cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE);
+         (void) cap_raised(current->cred->cap_effective, CAP_SYS_RESOURCE);
+#endif /* 2.6.29 */
          res = HostIFDoIoctl(filp, RTC_PIE_ON, 0);
          if (!cap) {
-            cap_lower(current->cap_effective, CAP_SYS_RESOURCE);            
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
+            cap_lower(current->cap_effective, CAP_SYS_RESOURCE);
+#else
+#warning	    cap_lower(current->cred->cap_effective, CAP_SYS_RESOURCE);
+#endif /* 2.6.29 */        
          }
          if (res < 0) {
             Warning("/dev/rtc enable interrupt failed: %d\n", res);
diff -Naur orig/vmmon-only/linux/vmmonInt.h new/vmmon-only/linux/vmmonInt.h
--- orig/vmmon-only/linux/vmmonInt.h	2008-10-28 22:47:17.000000000 -0700
+++ new/vmmon-only/linux/vmmonInt.h	2009-01-20 04:49:44.000000000 -0700
@@ -46,7 +46,10 @@
 #endif
 
 #if defined(CONFIG_SMP) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 2, 8)
-#ifdef VMW_HAVE_SMP_CALL_3ARG
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+#define VMW_HAVE_SMP_CALL_3ARG
+#endif
+#ifdef VMW_HAVE_SMP_CALL_3ARG 
 #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, wait)
 #else
 #define compat_smp_call_function(fn, info, wait) smp_call_function(fn, info, 1, wait)
diff -Naur orig/vmmon-only/modules.order new/vmmon-only/modules.order
--- orig/vmmon-only/modules.order	1969-12-31 17:00:00.000000000 -0700
+++ new/vmmon-only/modules.order	2009-01-20 04:49:44.000000000 -0700
@@ -0,0 +1 @@
+kernel//usr/local/src/vmware-workstation-2.6.29-rc1/vmmon-only/vmmon.ko
diff -Naur orig/vmnet-only/bridge.c new/vmnet-only/bridge.c
--- orig/vmnet-only/bridge.c	2008-10-28 22:47:18.000000000 -0700
+++ new/vmnet-only/bridge.c	2009-01-20 04:49:44.000000000 -0700
@@ -646,7 +646,11 @@
 	 dev_unlock_list();
       } else {
 	 struct sock *sk = bridge->sk;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 	 atomic_add(skb->truesize, &sk->sk_wmem_alloc);
+#else
+#warning EHUD gotta figure out what this does and how to fix it: atomic_add(skb->truesize, &sk->sk_wmem_alloc);
+#endif /* 2.6.29 */
 	 clone->sk = sk;
 	 clone->protocol = ((struct ethhdr *)skb->data)->h_proto; // XXX
 	 if ((dev->flags & IFF_UP) != 0) {
diff -Naur orig/vmnet-only/compat_wait.h new/vmnet-only/compat_wait.h
--- orig/vmnet-only/compat_wait.h	2008-10-28 22:47:19.000000000 -0700
+++ new/vmnet-only/compat_wait.h	2009-01-20 04:49:44.000000000 -0700
@@ -75,7 +75,11 @@
 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0) // {
 
 /* If prototype does not match, build will abort here */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
 extern void poll_initwait(compat_poll_wqueues *);
+#else /* 2.6.29 */
+extern void poll_initwait(struct poll_wqueues *);
+#endif /* 2.6.29 */
 
 #define compat_poll_initwait(wait, table) ( \
    (wait) = (table), \
diff -Naur orig/vmnet-only/driver.c new/vmnet-only/driver.c
--- orig/vmnet-only/driver.c	2008-10-28 22:47:19.000000000 -0700
+++ new/vmnet-only/driver.c	2009-01-20 04:49:44.000000000 -0700
@@ -146,6 +146,13 @@
    .owner    = THIS_MODULE,
    .obj_size = sizeof(struct sock),
 };
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+struct proto vmnet_proto = {
+   .name     = "VMNET",
+   .owner    = THIS_MODULE,
+   .obj_size = sizeof(struct sock),
+};
+
 #endif
 
 /*
diff -Naur orig/vmnet-only/modules.order new/vmnet-only/modules.order
--- orig/vmnet-only/modules.order	1969-12-31 17:00:00.000000000 -0700
+++ new/vmnet-only/modules.order	2009-01-20 04:49:44.000000000 -0700
@@ -0,0 +1 @@
+kernel//usr/local/src/vmware-workstation-2.6.29-rc1/vmnet-only/vmnet.ko
diff -Naur orig/vmnet-only/netif.c new/vmnet-only/netif.c
--- orig/vmnet-only/netif.c	2008-10-28 22:47:18.000000000 -0700
+++ new/vmnet-only/netif.c	2009-01-20 04:49:44.000000000 -0700
@@ -324,7 +324,10 @@
       goto out;
    }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
    dev->priv = netIf;
+#endif /* 2.6.29 */
+ 
    netIf->dev = dev;
    
    memcpy(dev->dev_addr, netIf->port.paddr, sizeof netIf->port.paddr);
@@ -566,7 +569,11 @@
 VNetNetifStartXmit(struct sk_buff    *skb, // IN:
                    struct net_device *dev) // IN:
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
    VNetNetIF *netIf = (VNetNetIF*)dev->priv;
+#else
+   VNetNetIF *netIf = netdev_priv(dev);
+#endif /* 2.6.29 */
 
    if(skb == NULL) {
       return 0;
@@ -618,7 +625,12 @@
 VNetNetifSetMAC(struct net_device *dev, // IN:
                 void *p)                // IN:
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
    VNetNetIF *netIf = (VNetNetIF*)dev->priv;
+#else
+   VNetNetIF *netIf = netdev_priv(dev);
+#endif /* 2.6.29 */
+
    struct sockaddr const *addr = p;
    if (!VMX86_IS_STATIC_MAC(addr->sa_data)) {
       return -EINVAL;
@@ -675,7 +687,11 @@
 struct net_device_stats *
 VNetNetifGetStats(struct net_device *dev) // IN:
 {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 29)
    VNetNetIF *netIf = (VNetNetIF*)dev->priv;
+#else
+   VNetNetIF *netIf = netdev_priv(dev);
+#endif /* 2.6.29 */
    return &(netIf->stats);
 }
 
