mbox series

[v2,0/4] Add new headers for Hyper-V Dom0

Message ID 1731018746-25914-1-git-send-email-nunodasneves@linux.microsoft.com (mailing list archive)
Headers show
Series Add new headers for Hyper-V Dom0 | expand

Message

Nuno Das Neves Nov. 7, 2024, 10:32 p.m. UTC
To support Hyper-V Dom0 (aka Linux as root partition), many new
definitions are required.

The plan going forward is to directly import definitions from
Hyper-V code without waiting for them to land in the TLFS document.
This is a quicker and more maintainable way to import definitions,
and is a step toward the eventual goal of exporting headers directly
from Hyper-V for use in Linux.

This patch series introduces new headers (hvhdk.h, hvgdk.h, etc,
see patch #3) derived directly from Hyper-V code. hyperv-tlfs.h is
replaced with hvhdk.h (which includes the other new headers)
everywhere.

No functional change is expected.

Summary:
Patch 1-2: Minor cleanup patches
Patch 3: Add the new headers (hvhdk.h, etc..) in include/hyperv/
Patch 4: Switch to the new headers

Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
---
Changelog:
v2:
- Rework the series to simply use the new headers everywhere
  instead of fiddling around to keep hyperv-tlfs.h used in some
  places, suggested by Michael Kelley and Easwar Hariharan
- Fix compilation errors with some configs by adding missing
  definitions and changing some names, thanks to Simon Horman for
  catching those
- Add additional definitions to the new headers to support them now
  replacing hyperv-tlfs.h everywhere
- Add additional context in the commit messages for patches #3 and #4
- In patch #2, don't remove indirect includes. Only remove includes
  which truly aren't used, suggested by Michael Kelley

---
Nuno Das Neves (4):
  hyperv: Move hv_connection_id to hyperv-tlfs.h
  hyperv: Clean up unnecessary #includes
  hyperv: Add new Hyper-V headers in include/hyperv
  hyperv: Switch from hyperv-tlfs.h to hyperv/hvhdk.h

 arch/arm64/hyperv/hv_core.c        |    3 +-
 arch/arm64/hyperv/mshyperv.c       |    4 +-
 arch/arm64/include/asm/mshyperv.h  |    2 +-
 arch/x86/hyperv/hv_apic.c          |    1 -
 arch/x86/hyperv/hv_init.c          |   21 +-
 arch/x86/hyperv/hv_proc.c          |    3 +-
 arch/x86/hyperv/ivm.c              |    1 -
 arch/x86/hyperv/mmu.c              |    1 -
 arch/x86/hyperv/nested.c           |    2 +-
 arch/x86/include/asm/kvm_host.h    |    3 +-
 arch/x86/include/asm/mshyperv.h    |    3 +-
 arch/x86/include/asm/svm.h         |    2 +-
 arch/x86/kernel/cpu/mshyperv.c     |    2 +-
 arch/x86/kvm/vmx/hyperv_evmcs.h    |    2 +-
 arch/x86/kvm/vmx/vmx_onhyperv.h    |    2 +-
 arch/x86/mm/pat/set_memory.c       |    2 -
 drivers/clocksource/hyperv_timer.c |    2 +-
 drivers/hv/hv_balloon.c            |    4 +-
 drivers/hv/hv_common.c             |    2 +-
 drivers/hv/hv_kvp.c                |    2 +-
 drivers/hv/hv_snapshot.c           |    2 +-
 drivers/hv/hyperv_vmbus.h          |    2 +-
 include/asm-generic/hyperv-tlfs.h  |    9 +
 include/asm-generic/mshyperv.h     |    2 +-
 include/clocksource/hyperv_timer.h |    2 +-
 include/hyperv/hvgdk.h             |  303 +++++++
 include/hyperv/hvgdk_ext.h         |   46 +
 include/hyperv/hvgdk_mini.h        | 1295 ++++++++++++++++++++++++++++
 include/hyperv/hvhdk.h             |  733 ++++++++++++++++
 include/hyperv/hvhdk_mini.h        |  310 +++++++
 include/linux/hyperv.h             |   11 +-
 net/vmw_vsock/hyperv_transport.c   |    2 +-
 32 files changed, 2729 insertions(+), 52 deletions(-)
 create mode 100644 include/hyperv/hvgdk.h
 create mode 100644 include/hyperv/hvgdk_ext.h
 create mode 100644 include/hyperv/hvgdk_mini.h
 create mode 100644 include/hyperv/hvhdk.h
 create mode 100644 include/hyperv/hvhdk_mini.h