vmmouse driver corrupts upper 32 bits of registers on x86-64
the vmmouse driver corrupts the x86-64 register state because it only saves the low 32 bits, and when restoring registers the upper bits will be zero.
See kernel commit 2687c848e578 ("x86/vmware: Fix hypercall clobbers") that works around this bug for the cases we've seen.
The bug is in vmmouse_{get,set}_data() and the caller vmmouse_ioport_read() that uses a "uint32_t data[6]" array for register state.
See
https://lore.kernel.org/all/99a9c69a-fc1a-43b7-8d1e-c42d6493b41f@broadcom.com/
for analysis by Alexey Makhalov.