diff mbox series

[v7,10/10] Drivers: hv: Enable Hyper-V code to be built on ARM64

Message ID 1598287583-71762-11-git-send-email-mikelley@microsoft.com (mailing list archive)
State New, archived
Headers show
Series Enable Linux guests on Hyper-V on ARM64 | expand

Commit Message

Michael Kelley (LINUX) Aug. 24, 2020, 4:46 p.m. UTC
Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
ARM64, causing the Hyper-V specific code to be built.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
---
 drivers/hv/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Ard Biesheuvel Aug. 24, 2020, 5:24 p.m. UTC | #1
On Mon, 24 Aug 2020 at 18:48, Michael Kelley <mikelley@microsoft.com> wrote:
>
> Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
> ARM64, causing the Hyper-V specific code to be built.
>
> Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> ---
>  drivers/hv/Kconfig | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> index 79e5356..1113e49 100644
> --- a/drivers/hv/Kconfig
> +++ b/drivers/hv/Kconfig
> @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
>
>  config HYPERV
>         tristate "Microsoft Hyper-V client drivers"
> -       depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
> +       depends on ACPI && \
> +                       ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) || ARM64)
>         select PARAVIRT
>         select X86_HV_CALLBACK_VECTOR
>         help

Given the comment in a previous patch

+/*
+ * All data structures defined in the TLFS that are shared between Hyper-V
+ * and a guest VM use Little Endian byte ordering.  This matches the default
+ * byte ordering of Linux running on ARM64, so no special handling is required.
+ */

shouldn't this depend on !CONFIG_CPU_BIG_ENDIAN ?
Michael Kelley (LINUX) Aug. 24, 2020, 5:28 p.m. UTC | #2
From: Ard Biesheuvel <ardb@kernel.org> Sent: Monday, August 24, 2020 10:24 AM
> 
> On Mon, 24 Aug 2020 at 18:48, Michael Kelley <mikelley@microsoft.com> wrote:
> >
> > Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
> > ARM64, causing the Hyper-V specific code to be built.
> >
> > Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> > ---
> >  drivers/hv/Kconfig | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> > index 79e5356..1113e49 100644
> > --- a/drivers/hv/Kconfig
> > +++ b/drivers/hv/Kconfig
> > @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
> >
> >  config HYPERV
> >         tristate "Microsoft Hyper-V client drivers"
> > -       depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
> > +       depends on ACPI && \
> > +                       ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) || ARM64)
> >         select PARAVIRT
> >         select X86_HV_CALLBACK_VECTOR
> >         help
> 
> Given the comment in a previous patch
> 
> +/*
> + * All data structures defined in the TLFS that are shared between Hyper-V
> + * and a guest VM use Little Endian byte ordering.  This matches the default
> + * byte ordering of Linux running on ARM64, so no special handling is required.
> + */
> 
> shouldn't this depend on !CONFIG_CPU_BIG_ENDIAN ?

Yes indeed.  I'll add it.

Michael
Ben Dooks Aug. 25, 2020, 8:47 a.m. UTC | #3
On 24/08/2020 18:24, Ard Biesheuvel wrote:
> On Mon, 24 Aug 2020 at 18:48, Michael Kelley <mikelley@microsoft.com> wrote:
>>
>> Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
>> ARM64, causing the Hyper-V specific code to be built.
>>
>> Signed-off-by: Michael Kelley <mikelley@microsoft.com>
>> ---
>>   drivers/hv/Kconfig | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
>> index 79e5356..1113e49 100644
>> --- a/drivers/hv/Kconfig
>> +++ b/drivers/hv/Kconfig
>> @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
>>
>>   config HYPERV
>>          tristate "Microsoft Hyper-V client drivers"
>> -       depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
>> +       depends on ACPI && \
>> +                       ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) || ARM64)
>>          select PARAVIRT
>>          select X86_HV_CALLBACK_VECTOR
>>          help
> 
> Given the comment in a previous patch
> 
> +/*
> + * All data structures defined in the TLFS that are shared between Hyper-V
> + * and a guest VM use Little Endian byte ordering.  This matches the default
> + * byte ordering of Linux running on ARM64, so no special handling is required.
> + */
> 
> shouldn't this depend on !CONFIG_CPU_BIG_ENDIAN ?

or mark the data __le and have the appropriate accessor functions do
the swapping.
diff mbox series

Patch

diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index 79e5356..1113e49 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -4,7 +4,8 @@  menu "Microsoft Hyper-V guest support"
 
 config HYPERV
 	tristate "Microsoft Hyper-V client drivers"
-	depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
+	depends on ACPI && \
+			((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) || ARM64)
 	select PARAVIRT
 	select X86_HV_CALLBACK_VECTOR
 	help