Apr 062011
 

If you happen to end up with this error while building 2.6.39-rc2:

LD [M]  drivers/staging/hv/hv_utils.o
CC [M]  drivers/staging/hv/hv_mouse.o
drivers/staging/hv/hv_mouse.c: In function ‘ReleaseInputDevice’:
drivers/staging/hv/hv_mouse.c:293: error: implicit declaration of function ‘udelay’
make[4]: *** [drivers/staging/hv/hv_mouse.o] Errore 1
make[3]: *** [drivers/staging/hv] Errore 2
make[2]: *** [drivers/staging] Errore 2
make[1]: *** [drivers] Errore 2

you can easily fix it by applying this patch

or by simply adding #include <linux/delay.h> near the top of the file giving the error.

Attached Files:

Apr 032011
 

Check the more up to date post instead

Even though VMware updated their packages to support up to 2.6.38 kernel series the support for linux is still quite lacking as they forgot entirely to support 2.6.39 which was just released.

So, as it seems no one bothered yet according to google and vmware community, in order to overcome this problem I had to put my hands at sources in order to make the modules build and run under this new version of the kernel. So little by little I’ve removed many of remaining things needing the BLK or which used wrongly SPINLOCK defines (we are talking of defines which were discouraged use since some years according to kernel documentation floating around).

The process was quite successful and I could run the VM well, the only issue I still couldn’t figure out is a NULL pointer deference in the vmblock kernel module, which seems to give troubles to virtualbox guests if loaded (and the null deference happens), and off course it taints the kernel. Yet I thought it would already be helpful to share these patches at this state as the vm works well, overall I didn’t notice issues out of this null pointer deference (except the one above), and, at least if loaded manually (only the vmblock module) after the boot when the system goes idle, it doesn’t even do the null pointer deference (could be some mutual exclusion issue).

vmware fixes for linux 2.6.39

A note: this patch will only work on 2.6.39. If you want it to be able to build also in previous versions of the kernel you need to ifdef by kernel version two changes in the filesystem.c. The one at the top of the patch removing a field from a structure, and the one removing the FsOpGetSb function.

Attached Files: