linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* RE: [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities
       [not found] ` <1614649360-5087-2-git-send-email-mikelley@microsoft.com>
@ 2021-03-03  0:34   ` Sunil Muthuswamy
  2021-03-03 18:28     ` Sunil Muthuswamy
  2021-03-05 20:56     ` Michael Kelley
  0 siblings, 2 replies; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03  0:34 UTC (permalink / raw)
  To: Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> +}
> +EXPORT_SYMBOL_GPL(hv_do_fast_hypercall8);
> +
> +
nit: Extra line, here and few other places

> +u64 hv_get_vpreg(u32 msr)
> +{
> +	struct hv_get_vp_registers_input	*input;
> +	struct hv_get_vp_registers_output	*output;
> +	u64					result;
It seems like the code is using both spaces and tabs to align variable names. Can
we stick to one or the other, preferably spaces.

> +
> +	/*
> +	 * Allocate a power of 2 size so alignment to that size is
> +	 * guaranteed, since the hypercall input and output areas
> +	 * must not cross a page boundary.
> +	 */
> +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> +				sizeof(input->element[0])), GFP_ATOMIC);
> +	output = kmalloc(roundup_pow_of_two(sizeof(*output)), GFP_ATOMIC);
> +
Check for null from these malloc routines? Here and in other places.

> +	__hv_get_vpreg_128(msr, input, output);

+ * Linux-specific definitions for managing interactions with Microsoft's
+ * Hyper-V hypervisor. The definitions in this file are specific to
+ * the ARM64 architecture.  See include/asm-generic/mshyperv.h for
nit: Two space before 'See'. Here and in couple of other places.


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities
  2021-03-03  0:34   ` [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities Sunil Muthuswamy
@ 2021-03-03 18:28     ` Sunil Muthuswamy
  2021-03-05 20:58       ` Michael Kelley
  2021-03-05 20:56     ` Michael Kelley
  1 sibling, 1 reply; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03 18:28 UTC (permalink / raw)
  To: Sunil Muthuswamy, Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> > +
> > +	/*
> > +	 * Allocate a power of 2 size so alignment to that size is
> > +	 * guaranteed, since the hypercall input and output areas
> > +	 * must not cross a page boundary.
> > +	 */
> > +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> > +				sizeof(input->element[0])), GFP_ATOMIC);
> > +	output = kmalloc(roundup_pow_of_two(sizeof(*output)), GFP_ATOMIC);
> > +
> Check for null from these malloc routines? Here and in other places.

Between, is there a plan to setup a percpu input/output page for hypercall
input/output on ARM (like we do for x64)? I didn't check the specific size requirement
for this particular call, but, that generally will remove the need for these
allocations.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 6/6] Drivers: hv: Enable Hyper-V code to be built on ARM64
       [not found] ` <1614649360-5087-7-git-send-email-mikelley@microsoft.com>
@ 2021-03-03 19:22   ` Sunil Muthuswamy
  0 siblings, 0 replies; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03 19:22 UTC (permalink / raw)
  To: Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> 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..d492682 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 && !CPU_BIG_ENDIAN))
>  	select PARAVIRT
>  	select X86_HV_CALLBACK_VECTOR
>  	help
> --
> 1.8.3.1

Reviewed-by: Sunil Muthuswamy <sunilmut@microsoft.com>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 2/6] arm64: hyperv: Add Hyper-V clocksource/clockevent support
       [not found] ` <1614649360-5087-3-git-send-email-mikelley@microsoft.com>
@ 2021-03-03 19:29   ` Sunil Muthuswamy
  0 siblings, 0 replies; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03 19:29 UTC (permalink / raw)
  To: Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> +/* Define the interrupt ID used by STIMER0 Direct Mode interrupts. This
> + * value can't come from ACPI tables because it is needed before the
> + * Linux ACPI subsystem is initialized.
> + */
> +#define HYPERV_STIMER0_VECTOR	31
nit: On x64, this is defined in HEX

> +
> +	return 0;
> +}
> +TIMER_ACPI_DECLARE(hyperv, ACPI_SIG_GTDT, hyperv_timer_init);
> --
> 1.8.3.1

Reviewed-by: Sunil Muthuswamy <sunilmut@microsoft.com>


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 4/6] arm64: hyperv: Initialize hypervisor on boot
       [not found] ` <1614649360-5087-5-git-send-email-mikelley@microsoft.com>
@ 2021-03-03 20:21   ` Sunil Muthuswamy
  2021-03-05 21:03     ` Michael Kelley
  0 siblings, 1 reply; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03 20:21 UTC (permalink / raw)
  To: Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> +static u64 hypercall_output __initdata;
> +
> +static int __init hyperv_init(void)
> +{
> +	struct hv_get_vpindex_from_apicid_input *input;
> +	u64	status;
> +	int	i;
nit: both, tabs & spaces are being used to indent variable names. Can we stick
to one?

> +
> +	/*
> +	 * Hypercall inputs must not cross a page boundary, so allocate
> +	 * power of 2 size, which will be aligned to that size.
> +	 */
> +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> +				sizeof(input->element[0])), GFP_KERNEL);
> +	if (!input)
> +		return -ENOMEM;
Similar to the comment on the other patch, can this be done through a
per-cpu hypercall input page?

> +		if ((status & HV_HYPERCALL_RESULT_MASK) == HV_STATUS_SUCCESS)
> +			hv_vp_index[i] = hypercall_output;
> +		else {
CNF suggests using braces even for single line 'if' statements if the 'else' is a multi-line
statement

> +			pr_warn("Hyper-V: No VP index for CPU %d MPIDR %llx status %llx\n",
> +				i, cpu_logical_map(i), status);
> +			hv_vp_index[i] = VP_INVAL;
> +		}

> +bool hv_is_hyperv_initialized(void)
> +{
> +	return hyperv_initialized;
> +}
> +EXPORT_SYMBOL_GPL(hv_is_hyperv_initialized);

This to me seems like more of an indication that whether the hypervisor is Hyper-V or
something else, rather than if necessary Hyper-V pieces have been initialized. If that is
the case, suggest renaming. Maybe just call it 'hv_is_hyperv'?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 3/6] arm64: hyperv: Add kexec and panic handlers
       [not found] ` <1614649360-5087-4-git-send-email-mikelley@microsoft.com>
@ 2021-03-03 21:29   ` Sunil Muthuswamy
  0 siblings, 0 replies; 10+ messages in thread
From: Sunil Muthuswamy @ 2021-03-03 21:29 UTC (permalink / raw)
  To: Michael Kelley
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

> +EXPORT_SYMBOL_GPL(hv_setup_crash_handler);
> +
> +void hv_remove_crash_handler(void)
> +{
> +}
> +EXPORT_SYMBOL_GPL(hv_remove_crash_handler);
> --
> 1.8.3.1

Reviewed-by: Sunil Muthuswamy <sunilmut@microsoft.com>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities
  2021-03-03  0:34   ` [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities Sunil Muthuswamy
  2021-03-03 18:28     ` Sunil Muthuswamy
@ 2021-03-05 20:56     ` Michael Kelley
  1 sibling, 0 replies; 10+ messages in thread
From: Michael Kelley @ 2021-03-05 20:56 UTC (permalink / raw)
  To: Sunil Muthuswamy
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

From: Sunil Muthuswamy <sunilmut@microsoft.com> Sent: Tuesday, March 2, 2021 4:35 PM
> 
> > +}
> > +EXPORT_SYMBOL_GPL(hv_do_fast_hypercall8);
> > +
> > +
> nit: Extra line, here and few other places

I'll try to clean these up.

> 
> > +u64 hv_get_vpreg(u32 msr)
> > +{
> > +	struct hv_get_vp_registers_input	*input;
> > +	struct hv_get_vp_registers_output	*output;
> > +	u64					result;
> It seems like the code is using both spaces and tabs to align variable names. Can
> we stick to one or the other, preferably spaces.

I think the general preference is to use tabs for alignment, not
spaces, so I'll try to clean these up in the next version.

> 
> > +
> > +	/*
> > +	 * Allocate a power of 2 size so alignment to that size is
> > +	 * guaranteed, since the hypercall input and output areas
> > +	 * must not cross a page boundary.
> > +	 */
> > +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> > +				sizeof(input->element[0])), GFP_ATOMIC);
> > +	output = kmalloc(roundup_pow_of_two(sizeof(*output)), GFP_ATOMIC);
> > +
> Check for null from these malloc routines? Here and in other places.

See my comment back to Boqun Feng on the same point.

> 
> > +	__hv_get_vpreg_128(msr, input, output);
> 
> + * Linux-specific definitions for managing interactions with Microsoft's
> + * Hyper-V hypervisor. The definitions in this file are specific to
> + * the ARM64 architecture.  See include/asm-generic/mshyperv.h for
> nit: Two space before 'See'. Here and in couple of other places.

The debate rages in the broader world of writing about using one
space vs. two spaces. :-)   I'm still old school on this point, and use two
spaces out of decades of habit, particularly with monospaced fonts,
though I'm probably not 100% consistent.

Michael


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities
  2021-03-03 18:28     ` Sunil Muthuswamy
@ 2021-03-05 20:58       ` Michael Kelley
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Kelley @ 2021-03-05 20:58 UTC (permalink / raw)
  To: Sunil Muthuswamy
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

From: Sunil Muthuswamy <sunilmut@microsoft.com> Sent: Wednesday, March 3, 2021 10:28 AM
> 
> > > +
> > > +	/*
> > > +	 * Allocate a power of 2 size so alignment to that size is
> > > +	 * guaranteed, since the hypercall input and output areas
> > > +	 * must not cross a page boundary.
> > > +	 */
> > > +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> > > +				sizeof(input->element[0])), GFP_ATOMIC);
> > > +	output = kmalloc(roundup_pow_of_two(sizeof(*output)), GFP_ATOMIC);
> > > +
> > Check for null from these malloc routines? Here and in other places.
> 
> Between, is there a plan to setup a percpu input/output page for hypercall
> input/output on ARM (like we do for x64)? I didn't check the specific size requirement
> for this particular call, but, that generally will remove the need for these
> allocations.

I'm not planning to add percpu input/output pages in this patch set.  As noted
in another reply, we can eliminate these memory allocations entirely by using
"fast" hypercalls.  At that point, there would be no usage of percpu input/output
pages in this patch set.  If the need arises in the context of future work, we can
add them at that time.

Michael

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [PATCH v8 4/6] arm64: hyperv: Initialize hypervisor on boot
  2021-03-03 20:21   ` [PATCH v8 4/6] arm64: hyperv: Initialize hypervisor on boot Sunil Muthuswamy
@ 2021-03-05 21:03     ` Michael Kelley
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Kelley @ 2021-03-05 21:03 UTC (permalink / raw)
  To: Sunil Muthuswamy
  Cc: will, catalin.marinas, Mark Rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, KY Srinivasan

From: Sunil Muthuswamy <sunilmut@microsoft.com> Sent: Wednesday, March 3, 2021 12:21 PM
> 
> > +static u64 hypercall_output __initdata;
> > +
> > +static int __init hyperv_init(void)
> > +{
> > +	struct hv_get_vpindex_from_apicid_input *input;
> > +	u64	status;
> > +	int	i;
> nit: both, tabs & spaces are being used to indent variable names. Can we stick
> to one?
> 

Agreed.  Will make this consistent in the next version.

> > +
> > +	/*
> > +	 * Hypercall inputs must not cross a page boundary, so allocate
> > +	 * power of 2 size, which will be aligned to that size.
> > +	 */
> > +	input = kzalloc(roundup_pow_of_two(sizeof(input->header) +
> > +				sizeof(input->element[0])), GFP_KERNEL);
> > +	if (!input)
> > +		return -ENOMEM;
> Similar to the comment on the other patch, can this be done through a
> per-cpu hypercall input page?

Per comments on other previous patch, these allocations can be eliminated
and the problem avoided entirely.

> 
> > +		if ((status & HV_HYPERCALL_RESULT_MASK) == HV_STATUS_SUCCESS)
> > +			hv_vp_index[i] = hypercall_output;
> > +		else {
> CNF suggests using braces even for single line 'if' statements if the 'else' is a multi-line
> statement

Will do.

> 
> > +			pr_warn("Hyper-V: No VP index for CPU %d MPIDR %llx status
> %llx\n",
> > +				i, cpu_logical_map(i), status);
> > +			hv_vp_index[i] = VP_INVAL;
> > +		}
> 
> > +bool hv_is_hyperv_initialized(void)
> > +{
> > +	return hyperv_initialized;
> > +}
> > +EXPORT_SYMBOL_GPL(hv_is_hyperv_initialized);
> 
> This to me seems like more of an indication that whether the hypervisor is Hyper-V or
> something else, rather than if necessary Hyper-V pieces have been initialized. If that is
> the case, suggest renaming. Maybe just call it 'hv_is_hyperv'?

This function also exists on the x86/x64 side and is used in architecture independent
code.  It's meaning is somewhere between "is Hyper-V" and "is Hyper-V initialized".
I'm not sure there's much value in changing the name everywhere.

Michael

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v8 3/6] arm64: hyperv: Add kexec and panic handlers
  2021-02-18 23:16 [PATCH v8 0/6] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
@ 2021-02-18 23:16 ` Michael Kelley
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Kelley @ 2021-02-18 23:16 UTC (permalink / raw)
  To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
	linux-kernel, linux-hyperv, linux-efi, arnd, wei.liu, ardb,
	daniel.lezcano, kys
  Cc: mikelley

Add function to inform Hyper-V about a guest panic.

Also add functions to set up and remove kexec and panic
handlers, which are currently unused on ARM64 but are
called from architecture independent code in the VMbus
driver.

This code is built only when CONFIG_HYPERV is enabled.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
---
 arch/arm64/hyperv/Makefile   |  2 +-
 arch/arm64/hyperv/hv_core.c  | 53 +++++++++++++++++++++++++++++++++++++++++++
 arch/arm64/hyperv/mshyperv.c | 54 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 108 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/hyperv/mshyperv.c

diff --git a/arch/arm64/hyperv/Makefile b/arch/arm64/hyperv/Makefile
index 1697d30..87c31c0 100644
--- a/arch/arm64/hyperv/Makefile
+++ b/arch/arm64/hyperv/Makefile
@@ -1,2 +1,2 @@
 # SPDX-License-Identifier: GPL-2.0
-obj-y		:= hv_core.o
+obj-y		:= hv_core.o mshyperv.o
diff --git a/arch/arm64/hyperv/hv_core.c b/arch/arm64/hyperv/hv_core.c
index 9a37124..d4e3808 100644
--- a/arch/arm64/hyperv/hv_core.c
+++ b/arch/arm64/hyperv/hv_core.c
@@ -165,3 +165,56 @@ void hv_get_vpreg_128(u32 msr, struct hv_get_vp_registers_output *res)
 	kfree(output);
 }
 EXPORT_SYMBOL_GPL(hv_get_vpreg_128);
+
+/*
+ * hyperv_report_panic - report a panic to Hyper-V.  This function uses
+ * the older version of the Hyper-V interface that admittedly doesn't
+ * pass enough information to be useful beyond just recording the
+ * occurrence of a panic. The parallel hv_kmsg_dump() uses the
+ * new interface that allows reporting 4 Kbytes of data, which is much
+ * more useful. Hyper-V on ARM64 always supports the newer interface, but
+ * we retain support for the older version because the sysadmin is allowed
+ * to disable the newer version via sysctl in case of information security
+ * concerns about the more verbose version.
+ */
+void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
+{
+	static bool panic_reported;
+	u64 guest_id;
+
+	/* Don't report a panic to Hyper-V if we're not going to panic */
+	if (in_die && !panic_on_oops)
+		return;
+
+	/*
+	 * We prefer to report panic on 'die' chain as we have proper
+	 * registers to report, but if we miss it (e.g. on BUG()) we need
+	 * to report it on 'panic'.
+	 *
+	 * Calling code in the 'die' and 'panic' paths ensures that only
+	 * one CPU is running this code, so no atomicity is needed.
+	 */
+	if (panic_reported)
+		return;
+	panic_reported = true;
+
+	guest_id = hv_get_vpreg(HV_REGISTER_GUEST_OSID);
+
+	/*
+	 * Hyper-V provides the ability to store only 5 values.
+	 * Pick the passed in error value, the guest_id, and the PC.
+	 * The first two general registers are added arbitrarily.
+	 */
+	hv_set_vpreg(HV_REGISTER_CRASH_P0, err);
+	hv_set_vpreg(HV_REGISTER_CRASH_P1, guest_id);
+	hv_set_vpreg(HV_REGISTER_CRASH_P2, regs->pc);
+	hv_set_vpreg(HV_REGISTER_CRASH_P3, regs->regs[0]);
+	hv_set_vpreg(HV_REGISTER_CRASH_P4, regs->regs[1]);
+
+	/*
+	 * Let Hyper-V know there is crash data available
+	 */
+	hv_set_vpreg(HV_REGISTER_CRASH_CTL, HV_CRASH_CTL_CRASH_NOTIFY);
+}
+EXPORT_SYMBOL_GPL(hyperv_report_panic);
+
diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
new file mode 100644
index 0000000..d202b4c
--- /dev/null
+++ b/arch/arm64/hyperv/mshyperv.c
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * Core routines for interacting with Microsoft's Hyper-V hypervisor.
+ * Includes hypervisor initialization, and handling of crashes and
+ * kexecs through a set of static "handler" variables set by the
+ * architecture independent VMbus driver.
+ *
+ * Copyright (C) 2021, Microsoft, Inc.
+ *
+ * Author : Michael Kelley <mikelley@microsoft.com>
+ */
+
+#include <linux/types.h>
+#include <linux/export.h>
+#include <linux/ptrace.h>
+
+/*
+ * The VMbus handler functions are no-ops on ARM64 because
+ * VMbus interrupts are handled as percpu IRQs.
+ */
+void hv_setup_vmbus_handler(void (*handler)(void))
+{
+}
+EXPORT_SYMBOL_GPL(hv_setup_vmbus_handler);
+
+void hv_remove_vmbus_handler(void)
+{
+}
+EXPORT_SYMBOL_GPL(hv_remove_vmbus_handler);
+
+/*
+ * The kexec and crash handler functions are
+ * currently no-ops on ARM64.
+ */
+void hv_setup_kexec_handler(void (*handler)(void))
+{
+}
+EXPORT_SYMBOL_GPL(hv_setup_kexec_handler);
+
+void hv_remove_kexec_handler(void)
+{
+}
+EXPORT_SYMBOL_GPL(hv_remove_kexec_handler);
+
+void hv_setup_crash_handler(void (*handler)(struct pt_regs *regs))
+{
+}
+EXPORT_SYMBOL_GPL(hv_setup_crash_handler);
+
+void hv_remove_crash_handler(void)
+{
+}
+EXPORT_SYMBOL_GPL(hv_remove_crash_handler);
-- 
1.8.3.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-03-05 21:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1614649360-5087-1-git-send-email-mikelley@microsoft.com>
     [not found] ` <1614649360-5087-2-git-send-email-mikelley@microsoft.com>
2021-03-03  0:34   ` [PATCH v8 1/6] arm64: hyperv: Add Hyper-V hypercall and register access utilities Sunil Muthuswamy
2021-03-03 18:28     ` Sunil Muthuswamy
2021-03-05 20:58       ` Michael Kelley
2021-03-05 20:56     ` Michael Kelley
     [not found] ` <1614649360-5087-7-git-send-email-mikelley@microsoft.com>
2021-03-03 19:22   ` [PATCH v8 6/6] Drivers: hv: Enable Hyper-V code to be built on ARM64 Sunil Muthuswamy
     [not found] ` <1614649360-5087-3-git-send-email-mikelley@microsoft.com>
2021-03-03 19:29   ` [PATCH v8 2/6] arm64: hyperv: Add Hyper-V clocksource/clockevent support Sunil Muthuswamy
     [not found] ` <1614649360-5087-5-git-send-email-mikelley@microsoft.com>
2021-03-03 20:21   ` [PATCH v8 4/6] arm64: hyperv: Initialize hypervisor on boot Sunil Muthuswamy
2021-03-05 21:03     ` Michael Kelley
     [not found] ` <1614649360-5087-4-git-send-email-mikelley@microsoft.com>
2021-03-03 21:29   ` [PATCH v8 3/6] arm64: hyperv: Add kexec and panic handlers Sunil Muthuswamy
2021-02-18 23:16 [PATCH v8 0/6] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
2021-02-18 23:16 ` [PATCH v8 3/6] arm64: hyperv: Add kexec and panic handlers Michael Kelley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).