The bad news -- the 4.0.4 upgrade installs replacement source files, and the kernel module build will fail for 2 modules.
The good news -- there's an easy workaround.
First, remove VMware Player 4.0.3 using the "vmware-installer -u vmware-player" utility, and manually go in to /usr/lib/vmware/modules/source and delete the remaining source files and directories. Then download and install VMware Player 4.0.4, but don't run it. Copy the vmware802fixlinux320.tar.gz patch file (from
here) to /usr/lib/vmware/modules/source, and untar it. You can delete the "patch-modules ...sh script -- you won't use it.
As root, at the /usr/lib/vmware/modules/source directory prompt, issue
for i in ./*.tar; do tar -xvf $i; done
to untar the five .tar files. Each one will extract into a new directory with "-only" as the directory name suffix. When you are finished you should have, in addition to the original five .tar files, the following new directories:
vmblock-only vmci-only vmmon-only vmnet-only vsock-only
Next, back up the original source .tar files with
for i in ./*.tar; do mv $i $i.original; done
Next, patch vmware with
patch -p1 < vmware3.2.0.patch
It should patch 3 files, with no error output.
Next, we need to fix a minor bug in one of the vmblock source files -- as described
here, the fix is easy:
With your favorite text editor, open the file /usr/lib/vmware/module/source/vmblock-only/linux/filesystem.c for editing. Go to line 528, and change d_alloc_root(rootInode) to read d_make_root(rootInode).
Finally, "tar cvf" all of the files in the vxxx-only subdirectories. So, for example,
tar cvf vmblock.tar vmblock-only/*
and do this for each of the 5 vxxx-only directories.
You are done -- the modules will now build when you start VMware Player 4.0.4.