diff -Naur work.orig/vmblock-only/linux/filesystem.c work/vmblock-only/linux/filesystem.c --- work.orig/vmblock-only/linux/filesystem.c 2007-09-01 20:17:01.000000000 +0200 +++ work/vmblock-only/linux/filesystem.c 2007-09-01 20:17:25.000000000 +0200 @@ -116,6 +116,14 @@ return -ENAMETOOLONG; } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) + /* Initialize our inode slab allocator */ + VMBlockInodeCache = kmem_cache_create("VMBlockInodeCache", + sizeof (VMBlockInodeInfo), + 0, + SLAB_HWCACHE_ALIGN, + InodeCacheCtor); +#else /* Initialize our inode slab allocator */ VMBlockInodeCache = kmem_cache_create("VMBlockInodeCache", sizeof (VMBlockInodeInfo), @@ -123,6 +131,8 @@ SLAB_HWCACHE_ALIGN, InodeCacheCtor, NULL); +#endif + if (!VMBlockInodeCache) { Warning("VMBlockInitFileSystem: could not initialize inode cache\n"); return -ENOMEM; diff -Naur work.orig/vmblock-only/linux/os.h work/vmblock-only/linux/os.h --- work.orig/vmblock-only/linux/os.h 2007-09-01 20:17:01.000000000 +0200 +++ work/vmblock-only/linux/os.h 2007-09-01 20:17:25.000000000 +0200 @@ -75,8 +75,13 @@ #define os_read_unlock(lock) read_unlock(lock) #define os_write_unlock(lock) write_unlock(lock) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) +#define os_kmem_cache_create(name, size, align, flags, ctor, dtor, data) \ + kmem_cache_create(name, size, align, flags, ctor) +#else #define os_kmem_cache_create(name, size, align, flags, ctor, dtor, data) \ kmem_cache_create(name, size, align, flags, ctor, dtor) +#endif #define os_kmem_cache_destroy(cache) kmem_cache_destroy(cache) #define os_kmem_cache_alloc(cache) kmem_cache_alloc(cache, GFP_KERNEL) #define os_kmem_cache_free(cache, elem) kmem_cache_free(cache, elem) diff -Naur work.orig/vmmon-only/linux/driver.c work/vmmon-only/linux/driver.c --- work.orig/vmmon-only/linux/driver.c 2007-09-01 20:17:01.000000000 +0200 +++ work/vmmon-only/linux/driver.c 2007-09-01 20:17:31.000000000 +0200 @@ -1711,7 +1711,9 @@ current->fsuid == current->uid && current->egid == current->gid && current->fsgid == current->gid) { -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 7) +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) +/* set_dumpable(current->mm, 1); */ /* this is a GPL-only symbol */ +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 7) current->mm->dumpable = 1; #else current->dumpable = 1; diff -Naur work.orig/vmnet-only/driver.c work/vmnet-only/driver.c --- work.orig/vmnet-only/driver.c 2007-09-01 20:17:00.000000000 +0200 +++ work/vmnet-only/driver.c 2007-09-01 20:18:27.000000000 +0200 @@ -525,14 +525,18 @@ void cleanup_module(void) { + unregister_ioctl32_handlers(); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) + unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet"); +#else int retval; - unregister_ioctl32_handlers(); retval = unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet"); if (retval != 0 ) { LOG(0, (KERN_WARNING "/dev/vmnet: could not unregister major device %d\n", VNET_MAJOR_NUMBER)); } +#endif VNetProtoUnregister(); VNetProc_Cleanup(); #ifdef CONFIG_NETFILTER