Move VMware hypercall assembly out of vmware.h and select the low-bandwidth backend with a static call, following Linus's request: https://lore.kernel.org/all/CAHk-=wivx7pi+h+hGmvNFAJm6StQLiQ-b8DdsE5J=lmowae...@mail.gmail.com/
Patch 1 moves the high-bandwidth helpers out of line and removes the redundant vmwgfx caller annotations. Patch 2 uses input and result structures for the four low-bandwidth backends, selects the backend during VMware platform setup, and removes the early dispatcher. Patch 3 retires the unused VMware feature bits. The caller API is unchanged. The I/O-port backdoor remains the initial target for early DMI probing. Modules use the exported high-bandwidth helpers and static-call trampoline; the static-call key stays private. This v3 replaces patch 1 of Alexey's v2: https://lore.kernel.org/all/[email protected]/ Its panic logging patches and steal-time fix were reposted separately: https://lore.kernel.org/r/[email protected] https://lore.kernel.org/r/[email protected] It is based on tip's x86/urgent branch, which has the i386 high-bandwidth fix this series builds on: e0e022004bbe ("x86/vmware: Fix i386 high-bandwidth hypercall arguments"). Please route this through tip. As the vmwgfx maintainer, I agree that its small annotation removal should go through tip with the assembly move. DRM maintainers and dri-devel are copied. I'll make sure there are no conflicts in that code while the trees merge. And yes, this code is a bit like me, meaning it gets on everyone's nerves and likely looks awkward in shorts, so we're just trying to make the best out of what a politician would call a less-than-ideal situation. Changes since v2: - Replace the ten-argument backend interface with input/result structures. - Move the high-bandwidth assembly out of the header as well. - Preserve all low-bandwidth outputs and the backend-specific %dx flags. - Export the callable trampoline without exporting its key. - Correct the ABI documentation and retire unused feature bits. - Keep the backportable i386 fix in its separate posting. Alexey Makhalov (1): x86/vmware: Route low-bandwidth hypercalls through a static call Zack Rusin (2): x86/vmware: Move high-bandwidth hypercalls out of line x86/cpufeatures: Remove unused VMware hypercall feature bits arch/x86/include/asm/cpufeatures.h | 4 +- arch/x86/include/asm/vmware.h | 371 +++++++++++----------------- arch/x86/kernel/cpu/vmware.c | 299 +++++++++++++++------- drivers/gpu/drm/vmwgfx/vmwgfx_msg.c | 3 - 4 files changed, 351 insertions(+), 326 deletions(-) base-commit: e0e022004bbedc7caf1c18770980eb5372019189
