patch to support kernel 2.6.23
I've traced the troubles with kernel 2.6.23 and created the following patch against Parallels Workstation build 2.2.2204. To apply this patch run something like:
mkdir temp
cd temp
tar -xvzf /usr/lib/parallels/devel.tar.gz
patch -p1 </path_to_patch/support_2.6.23.patch
tar -czf devel.tar.gz *
Copy created devel.tar.gz over original /usr/lib/parallels/devel.tar.gz and run parallels-config
Code:
diff -ru old/drivers/drv_main/mm/manager.c new/drivers/drv_main/mm/manager.c
--- old/drivers/drv_main/mm/manager.c 2007-09-17 21:00:00.000000000 -0700
+++ new/drivers/drv_main/mm/manager.c 2007-11-01 16:52:03.000000000 -0700
@@ -267,7 +267,7 @@
INIT_LIST_HEAD(&vmGlobal.vmPmms.pmmList);
vmGlobal.vmPmms.pmmRegionsSlab = kmem_cache_create("vmRegions", sizeof(struct pmm_region_t), 0,
- SLAB_HWCACHE_ALIGN, NULL, NULL);
+ SLAB_HWCACHE_ALIGN, NULL);
if (!vmGlobal.vmPmms.pmmRegionsSlab) {
Err("Can't allocate vmRegions cache SLAB");
return -1;
diff -ru old/drivers/drv_main/vmmain.h new/drivers/drv_main/vmmain.h
--- old/drivers/drv_main/vmmain.h 2007-09-17 21:00:00.000000000 -0700
+++ new/drivers/drv_main/vmmain.h 2007-11-01 16:50:43.000000000 -0700
@@ -193,7 +193,7 @@
/* list of PMM's */
struct list_head pmmList;
/* regions cache */
- kmem_cache_t *pmmRegionsSlab;
+ struct kmem_cache *pmmRegionsSlab;
/* total guest memory */
unsigned long totalMem;
} vmPmms;
diff -ru old/drivers/hypervisor/hypervisor.h new/drivers/hypervisor/hypervisor.h
--- old/drivers/hypervisor/hypervisor.h 2007-09-17 21:00:00.000000000 -0700
+++ new/drivers/hypervisor/hypervisor.h 2007-11-01 16:51:34.000000000 -0700
@@ -127,7 +127,7 @@
#ifndef _HYPER_BINARY_PART_
/* slab cache for vmstates */
- kmem_cache_t *vmStateCache;
+ struct kmem_cache *vmStateCache;
/* list of vmstates */
struct list_head vmStateList;
diff -ru old/drivers/hypervisor/hypvmstate.c new/drivers/hypervisor/hypvmstate.c
--- old/drivers/hypervisor/hypvmstate.c 2007-09-17 21:00:00.000000000 -0700
+++ new/drivers/hypervisor/hypvmstate.c 2007-11-01 16:51:05.000000000 -0700
@@ -167,7 +167,7 @@
/* create slabcache */
if (!(hypState.vmStateCache = kmem_cache_create(VMSTATE_SLABNAME, sizeof(struct hyp_vmstate_t), 0,
- SLAB_HWCACHE_ALIGN, NULL, NULL)))
+ SLAB_HWCACHE_ALIGN, NULL)))
return -ENOMEM;
/* init list */