Patches needed to build VMware (Player and Workstation) host modules against recent kernels
Go to file
Michal Kubecek aeb85e0798 modules: fix build with -Wmissing-prototypes
Mainline commit 0fcb70851fbf ("Makefile.extrawarn: turn on
missing-prototypes globally") in 6.8-rc1 enables -Wmissing-prototypes
globally, revealing a lot of unclean code and also some actual problems.
This is also the case in vmmon and vmnet modules.

Most of them are addressed by making functions used only within one file
static. The missing prototype of random_get_entropy_fallback() is handled
by including <linux/timex.h> rather than <asm/timex.h>.

Finally, there are four functions in vmnet module which are actually used
in multiple files but instead of proper declarations, their prototype is
duplicated in vmnet-only/driver.c, risking that the two copies won't match
(which actually happened in one case). The cleanest solution would be
creating separate header files for them (bridge.h, netif.h, userif.h and
vnetUserListener.h) and including them in the respective source file and
driver.c. As the developers already handle similar cases by simply putting
the declarations into vnetInt.h, let us do the same to keep things simple.
2024-01-13 02:08:13 +01:00
vmmon-only modules: fix build with -Wmissing-prototypes 2024-01-13 02:08:13 +01:00
vmnet-only modules: fix build with -Wmissing-prototypes 2024-01-13 02:08:13 +01:00
.gitignore misc: ignore *.mod and .*.cmd 2021-05-20 13:27:31 +02:00
INSTALL misc: discontinue Player related versions and tags 2022-11-18 13:01:45 +01:00
LICENSE Initial commit 2017-05-31 08:45:16 +02:00
Makefile misc: clean copies of vmmon.o and vmnet.o in top level makefile 2018-05-27 16:08:30 +02:00
README misc: discontinue Player related versions and tags 2022-11-18 13:01:45 +01:00

README

This repository tracks patches needed to build VMware (Player and
Workstation) host modules against recent kernels. As it focuses on recent
kernels (older ones do not need patching), only vmmon and vmnet modules are
currently handled as the rest has been upstreamed for some time.

Main branch master handles only "infrastructure" files which do not belong
to VMware module sources. Two other branches, "player" and "workstation"
track upstream module sources distributed with Player and Workstation,
respectively. Tags of the form "p${version}" (e.g.  "p12.5.5") and
"w${version}" correspond to clean unpacked sources of modules from
a particular version of Player or Workstation.

From these tags, branches "workstation-${version}" is forked. This branch
tracks changes needed to build the modules against recent kernel versions.
In general, one should always use current branch head for the build. For
versions before 17.0, there are also branches "player-${version}" but as
the module sources have been identical between Workstation and Player for
quite long, there seems to be no need to duplicate the work. Therefore the
"workstation-*" branches should be also used for Player >= 17.0 (and can be
in fact used for older as well). If the situation changes in the future,
Player related branches can be introduced again.

In the past, tags in the form "w${ver}-k${ver}" and "p${ver}-k${kver}" were
also provided to mark the snapshots deemed sufficient to build modules for
Workstation/Player version $ver at the moment of kernel $kver release. This
practice turned to be a bad idea; more often an issue affecting older
kernel versions was discovered later than a fix for newer kernel did not
work with older ones. Unfortunately, misinterpreting these tags often
resulted in building modules from old branch snapshots and reporting issues
that have been addressed long ago. Therefore, starting with kernel 6.0,
these per kernel tags are no longer going to be provided.

At the moment, changes are tested to build against all (vanilla) kernel
releases starting with 4.9.

This repository is provided "as is" with no guarantees. Use the contents on
your own risk.