Note: User at your own risk !
Vmware 12.1 modules compilation is broke since kernel 4.9. Here’s a quick and dirty patch I came up with after failing to find a solution.
-
Go to vmware modules source directory
cd /usr/lib/vmware/modules/source/
-
Extract vmmon and vmnet sources
tar xf vmnet.tar tar xf vmmon.tar
-
In the same directory, move the patch files from this repo
cp <path_to_this_repo>/vmmon-hostif.c/hostif.patch . cp <path_to_this_repo>/vmnet-user.c/userif.patch .
-
Apply patches
patch -s -p0 < hostif.patch patch -s -p0 < userif.patch
-
Recreate archives
tar -cf vmmon.tar vmmon-only tar -cf vmnet.tar vmnet-only
-
Recompile
sudo vmware-modconfig --console --install-all
Commits responsible for this error:
https://github.com/torvalds/linux/commit/9beae1ea89305a9667ceaab6d0bf46a045ad71e7 https://github.com/torvalds/linux/commit/1e9877902dc7e11d2be038371c6fbf2dfcd469d7#diff-e37c5ffd9b4db050c3f7eae7d74e64c3R1230
Ths signature of get_user_pages_remote changed, instead of passing (write=1,force=0) they are passed in a flag ( 0 |= FOLL_WRITE or 0)