On 5/7/2025 3:49 PM, Saurabh Singh Sengar wrote:
Provide an interface for Virtual Machine Monitor like OpenVMM and its
use as OpenHCL paravisor to control VTL0 (Virtual trust Level).
Expose devices and support IOCTLs for features like VTL creation,
VTL0 memory management, context switch, making hypercalls,
mapping VTL0 address space to VTL2 userspace, getting new VMBus
messages and channel events in VTL2 etc.

Co-developed-by: Roman Kisel <rom...@linux.microsoft.com>
Signed-off-by: Roman Kisel <rom...@linux.microsoft.com>
Co-developed-by: Saurabh Sengar <ssen...@linux.microsoft.com>
Signed-off-by: Saurabh Sengar <ssen...@linux.microsoft.com>
Signed-off-by: Naman Jain <namj...@linux.microsoft.com>
---

OpenVMM :
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fopenv
mm.dev%2Fguide%2F&data=05%7C02%7Cssengar%40microsoft.com%7Ce3b
0a61c2c72423aa33408dd8c7af2e9%7C72f988bf86f141af91ab2d7cd011db47%
7C1%7C0%7C638821181946438191%7CUnknown%7CTWFpbGZsb3d8eyJFbXB
0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFp
bCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=uYUgaqKTazf0BL8ukdeUEor
d9hN8NidMLwE19NdprlE%3D&reserved=0

---

<snip>

+               return -EINVAL;
+       if (copy_from_user(payload, (void __user *)message.payload_ptr,
+                          message.payload_size))
+               return -EFAULT;
+
+       return hv_post_message((union

This function definition is in separate file which can be build as independent 
module, this will cause
problem while linking . Try building with CONFIG_HYPERV=m and check.

- Saurabh

Thanks for reviewing Saurabh. As CONFIG_HYPERV can be set to 'm'
and CONFIG_MSHV_VTL depends on it, changing CONFIG_MSHV_VTL to tristate
and a few tweaks in Makefile will fix this issue. This will ensure that
mshv_vtl is also built as a module when hyperv is built as a module.

I'll take care of this in next version.

here is the diff for reference:
diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index 57dcfcb69b88..c7f21b483377 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -73,7 +73,7 @@ config MSHV_ROOT
          If unsure, say N.

 config MSHV_VTL
-       bool "Microsoft Hyper-V VTL driver"
+       tristate "Microsoft Hyper-V VTL driver"
        depends on HYPERV && X86_64
        depends on TRANSPARENT_HUGEPAGE
        depends on OF
diff --git a/drivers/hv/Makefile b/drivers/hv/Makefile
index 5e785dae08cc..c53a0df746b7 100644
--- a/drivers/hv/Makefile
+++ b/drivers/hv/Makefile
@@ -15,9 +15,11 @@ hv_vmbus-$(CONFIG_HYPERV_TESTING)    += hv_debugfs.o
 hv_utils-y := hv_util.o hv_kvp.o hv_snapshot.o hv_utils_transport.o
 mshv_root-y := mshv_root_main.o mshv_synic.o mshv_eventfd.o mshv_irq.o \
               mshv_root_hv_call.o mshv_portid_table.o
+mshv_vtl-y := mshv_vtl_main.o

 # Code that must be built-in
 obj-$(subst m,y,$(CONFIG_HYPERV)) += hv_common.o
-obj-$(subst m,y,$(CONFIG_MSHV_ROOT)) += hv_proc.o mshv_common.o
-
-mshv_vtl-y := mshv_vtl_main.o mshv_common.o
+obj-$(subst m,y,$(CONFIG_MSHV_ROOT)) += hv_proc.o
+ifneq ($(CONFIG_MSHV_ROOT) $(CONFIG_MSHV_VTL),)
+    obj-y += mshv_common.o
+endif

Regards,
Naman

Reply via email to