get_hypervisor_version, hv_call_deposit_pages, hv_call_create_vp,
hv_call_deposit_pages, and hv_call_create_vp are all needed in module
with CONFIG_MSHV_ROOT=m.
Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
---
arch/arm64/hyperv/mshyperv.c | 1 +
arch/x86/kernel/cpu/mshyperv.c | 1 +
drivers/hv/hv_common.c | 1 +
drivers/hv/hv_proc.c | 3 ++-
4 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
index 2265ea5ce5ad..4e27cc29c79e 100644
--- a/arch/arm64/hyperv/mshyperv.c
+++ b/arch/arm64/hyperv/mshyperv.c
@@ -26,6 +26,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
return 0;
}
+EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
static int __init hyperv_init(void)
{
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index 2c29dfd6de19..0116d0e96ef9 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -420,6 +420,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
return 0;
}
+EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
static void __init ms_hyperv_init_platform(void)
{
diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c
index ce20818688fe..252fd66ad4db 100644
--- a/drivers/hv/hv_common.c
+++ b/drivers/hv/hv_common.c
@@ -717,6 +717,7 @@ int hv_result_to_errno(u64 status)
}
return -EIO;
}
+EXPORT_SYMBOL_GPL(hv_result_to_errno);
void hv_identify_partition_type(void)
{
diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c
index 8fc30f509fa7..20c8cee81e2b 100644
--- a/drivers/hv/hv_proc.c
+++ b/drivers/hv/hv_proc.c
@@ -108,6 +108,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
kfree(counts);
return ret;
}
+EXPORT_SYMBOL_GPL(hv_call_deposit_pages);
int hv_call_add_logical_proc(int node, u32 lp_index, u32 apic_id)
{
@@ -194,4 +195,4 @@ int hv_call_create_vp(int node, u64 partition_id, u32 vp_index, u32 flags)
return ret;
}
-
+EXPORT_SYMBOL_GPL(hv_call_create_vp);
--
2.34.1
On 2/26/2025 3:08 PM, Nuno Das Neves wrote:
> get_hypervisor_version, hv_call_deposit_pages, hv_call_create_vp,
> hv_call_deposit_pages, and hv_call_create_vp are all needed in module
> with CONFIG_MSHV_ROOT=m.
>
Nit: It's generally good practice to use parentheses when mentioning functions, i.e.
hv_get_hypervisor_version(), hv_call_deposit_pages() etc
Otherwise, looks good to me.
Reviewed-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> ---
> arch/arm64/hyperv/mshyperv.c | 1 +
> arch/x86/kernel/cpu/mshyperv.c | 1 +
> drivers/hv/hv_common.c | 1 +
> drivers/hv/hv_proc.c | 3 ++-
> 4 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
> index 2265ea5ce5ad..4e27cc29c79e 100644
> --- a/arch/arm64/hyperv/mshyperv.c
> +++ b/arch/arm64/hyperv/mshyperv.c
> @@ -26,6 +26,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
>
> static int __init hyperv_init(void)
> {
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 2c29dfd6de19..0116d0e96ef9 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -420,6 +420,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
>
> static void __init ms_hyperv_init_platform(void)
> {
> diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c
> index ce20818688fe..252fd66ad4db 100644
> --- a/drivers/hv/hv_common.c
> +++ b/drivers/hv/hv_common.c
> @@ -717,6 +717,7 @@ int hv_result_to_errno(u64 status)
> }
> return -EIO;
> }
> +EXPORT_SYMBOL_GPL(hv_result_to_errno);
>
> void hv_identify_partition_type(void)
> {
> diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c
> index 8fc30f509fa7..20c8cee81e2b 100644
> --- a/drivers/hv/hv_proc.c
> +++ b/drivers/hv/hv_proc.c
> @@ -108,6 +108,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
> kfree(counts);
> return ret;
> }
> +EXPORT_SYMBOL_GPL(hv_call_deposit_pages);
>
> int hv_call_add_logical_proc(int node, u32 lp_index, u32 apic_id)
> {
> @@ -194,4 +195,4 @@ int hv_call_create_vp(int node, u64 partition_id, u32 vp_index, u32 flags)
>
> return ret;
> }
> -
> +EXPORT_SYMBOL_GPL(hv_call_create_vp);
On 2/26/2025 3:08 PM, Nuno Das Neves wrote:
> get_hypervisor_version, hv_call_deposit_pages, hv_call_create_vp,
> hv_call_deposit_pages, and hv_call_create_vp are all needed in module
> with CONFIG_MSHV_ROOT=m.
>
> Signed-off-by: Nuno Das Neves <nunodasneves@linux.microsoft.com>
> ---
> arch/arm64/hyperv/mshyperv.c | 1 +
> arch/x86/kernel/cpu/mshyperv.c | 1 +
> drivers/hv/hv_common.c | 1 +
> drivers/hv/hv_proc.c | 3 ++-
> 4 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
> index 2265ea5ce5ad..4e27cc29c79e 100644
> --- a/arch/arm64/hyperv/mshyperv.c
> +++ b/arch/arm64/hyperv/mshyperv.c
> @@ -26,6 +26,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
>
> static int __init hyperv_init(void)
> {
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 2c29dfd6de19..0116d0e96ef9 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -420,6 +420,7 @@ int hv_get_hypervisor_version(union hv_hypervisor_version_info *info)
>
> return 0;
> }
> +EXPORT_SYMBOL_GPL(hv_get_hypervisor_version);
>
> static void __init ms_hyperv_init_platform(void)
> {
> diff --git a/drivers/hv/hv_common.c b/drivers/hv/hv_common.c
> index ce20818688fe..252fd66ad4db 100644
> --- a/drivers/hv/hv_common.c
> +++ b/drivers/hv/hv_common.c
> @@ -717,6 +717,7 @@ int hv_result_to_errno(u64 status)
> }
> return -EIO;
> }
> +EXPORT_SYMBOL_GPL(hv_result_to_errno);
>
> void hv_identify_partition_type(void)
> {
> diff --git a/drivers/hv/hv_proc.c b/drivers/hv/hv_proc.c
> index 8fc30f509fa7..20c8cee81e2b 100644
> --- a/drivers/hv/hv_proc.c
> +++ b/drivers/hv/hv_proc.c
> @@ -108,6 +108,7 @@ int hv_call_deposit_pages(int node, u64 partition_id, u32 num_pages)
> kfree(counts);
> return ret;
> }
> +EXPORT_SYMBOL_GPL(hv_call_deposit_pages);
>
> int hv_call_add_logical_proc(int node, u32 lp_index, u32 apic_id)
> {
> @@ -194,4 +195,4 @@ int hv_call_create_vp(int node, u64 partition_id, u32 vp_index, u32 flags)
>
> return ret;
> }
> -
> +EXPORT_SYMBOL_GPL(hv_call_create_vp);
Reviewed-by: Roman Kisel <romank@linux.microsoft.com>
--
Thank you,
Roman
On Wed, Feb 26, 2025 at 03:08:00PM -0800, Nuno Das Neves wrote: > get_hypervisor_version, hv_call_deposit_pages, hv_call_create_vp, > hv_call_deposit_pages, and hv_call_create_vp are all needed in module > with CONFIG_MSHV_ROOT=m. > Reviewed-by: Stanislav Kinsburskii <skinsburskii@microsoft.linux.com>
© 2016 - 2026 Red Hat, Inc.