diff --git a/README.md b/README.md index 62c2e4a..37fecaf 100644 --- a/README.md +++ b/README.md @@ -8,24 +8,41 @@ Here’s a quick and dirty patch I came up with after failing to find a solution ### Usage -1. Go to vmware modules source directory -`cd /usr/lib/vmware/modules/source/` +1. Go to vmware modules source directory -2. + cd /usr/lib/vmware/modules/source/ -https://github.com/torvalds/linux/commit/9beae1ea89305a9667ceaab6d0bf46a045ad71e7 +2. Extract **vmmon** and **vmnet** sources -- two variables(write, force) replaced with gup_flags -- gup flags used like this -unsigned int flags = 0; + tar xf vmnet.tar + tar xf vmmon.tar + +3. In the same directory, move the patch files from this repo + + cp /vmmon-hostif.c/hostif.patch . + cp /vmnet-user.c/userif.patch . + +4. Apply patches + + patch -s -p0 < hostif.patch + patch -s -p0 < userif.patch + +5. Recreate archives + + tar -cf vmmon.tar vmmon-only + tar -cf vmnet.tar vmnet-only + +5. Recompile `sudo vmware-modconfig --console --install-all` -flags |= FOLL_WRITE -1, 0, pvec + pinned ---> flags, pvec + pinned -https://github.com/torvalds/linux/commit/1e9877902dc7e11d2be038371c6fbf2dfcd469d7#diff-e37c5ffd9b4db050c3f7eae7d74e64c3R1230 +### Resources +Commits responsible for this error: -write, force, pages --> flags(write=1,force=0) +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) -flags: the flags must be write only and not force -FOLL_WRITE https://github.com/torvalds/linux/blob/6e5c8381d1db4c1cdd4b4e49d5f0d1255c2246fd/include/linux/mm.h#L227://github.com/torvalds/linux/blob/6e5c8381d1db4c1cdd4b4e49d5f0d1255c2246fd/include/linux/mm.h#L2278 + +