mirror of
https://github.com/torvalds/linux.git
synced 2024-11-24 13:11:40 +00:00
Drivers: hv: Add arch independent default functions for some Hyper-V handlers
Architecture independent Hyper-V code calls various arch-specific handlers when needed. To aid in supporting multiple architectures, provide weak defaults that can be overridden by arch-specific implementations where appropriate. But when arch-specific overrides aren't needed or haven't been implemented yet for a particular architecture, these stubs reduce the amount of clutter under arch/. No functional change. Signed-off-by: Michael Kelley <mikelley@microsoft.com> Link: https://lore.kernel.org/r/1626287687-2045-3-git-send-email-mikelley@microsoft.com Signed-off-by: Wei Liu <wei.liu@kernel.org>
This commit is contained in:
parent
afca4d95dd
commit
9d7cf2c967
@ -468,7 +468,6 @@ void hyperv_cleanup(void)
|
||||
hypercall_msr.as_uint64 = 0;
|
||||
wrmsrl(HV_X64_MSR_REFERENCE_TSC, hypercall_msr.as_uint64);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hyperv_cleanup);
|
||||
|
||||
void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
|
||||
{
|
||||
@ -542,4 +541,3 @@ bool hv_is_isolation_supported(void)
|
||||
{
|
||||
return hv_get_isolation_type() != HV_ISOLATION_TYPE_NONE;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_is_isolation_supported);
|
||||
|
@ -62,14 +62,12 @@ void hv_setup_vmbus_handler(void (*handler)(void))
|
||||
{
|
||||
vmbus_handler = handler;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_vmbus_handler);
|
||||
|
||||
void hv_remove_vmbus_handler(void)
|
||||
{
|
||||
/* We have no way to deallocate the interrupt gate */
|
||||
vmbus_handler = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_vmbus_handler);
|
||||
|
||||
/*
|
||||
* Routines to do per-architecture handling of stimer0
|
||||
@ -104,25 +102,21 @@ void hv_setup_kexec_handler(void (*handler)(void))
|
||||
{
|
||||
hv_kexec_handler = handler;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_kexec_handler);
|
||||
|
||||
void hv_remove_kexec_handler(void)
|
||||
{
|
||||
hv_kexec_handler = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_kexec_handler);
|
||||
|
||||
void hv_setup_crash_handler(void (*handler)(struct pt_regs *regs))
|
||||
{
|
||||
hv_crash_handler = handler;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_crash_handler);
|
||||
|
||||
void hv_remove_crash_handler(void)
|
||||
{
|
||||
hv_crash_handler = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_crash_handler);
|
||||
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
static void hv_machine_shutdown(void)
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <linux/export.h>
|
||||
#include <linux/bitfield.h>
|
||||
#include <linux/cpumask.h>
|
||||
#include <linux/ptrace.h>
|
||||
#include <linux/slab.h>
|
||||
#include <asm/hyperv-tlfs.h>
|
||||
#include <asm/mshyperv.h>
|
||||
@ -202,3 +203,51 @@ bool hv_query_ext_cap(u64 cap_query)
|
||||
return hv_extended_cap & cap_query;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_query_ext_cap);
|
||||
|
||||
/* These __weak functions provide default "no-op" behavior and
|
||||
* may be overridden by architecture specific versions. Architectures
|
||||
* for which the default "no-op" behavior is sufficient can leave
|
||||
* them unimplemented and not be cluttered with a bunch of stub
|
||||
* functions in arch-specific code.
|
||||
*/
|
||||
|
||||
bool __weak hv_is_isolation_supported(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_is_isolation_supported);
|
||||
|
||||
void __weak hv_setup_vmbus_handler(void (*handler)(void))
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_vmbus_handler);
|
||||
|
||||
void __weak hv_remove_vmbus_handler(void)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_vmbus_handler);
|
||||
|
||||
void __weak hv_setup_kexec_handler(void (*handler)(void))
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_kexec_handler);
|
||||
|
||||
void __weak hv_remove_kexec_handler(void)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_kexec_handler);
|
||||
|
||||
void __weak hv_setup_crash_handler(void (*handler)(struct pt_regs *regs))
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_setup_crash_handler);
|
||||
|
||||
void __weak hv_remove_crash_handler(void)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hv_remove_crash_handler);
|
||||
|
||||
void __weak hyperv_cleanup(void)
|
||||
{
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hyperv_cleanup);
|
||||
|
Loading…
Reference in New Issue
Block a user