|
@@ -387,6 +387,13 @@ void hyperv_cleanup(void)
|
|
|
/* Reset our OS id */
|
|
/* Reset our OS id */
|
|
|
wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0);
|
|
wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0);
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ * Reset hypercall page reference before reset the page,
|
|
|
|
|
+ * let hypercall operations fail safely rather than
|
|
|
|
|
+ * panic the kernel for using invalid hypercall page
|
|
|
|
|
+ */
|
|
|
|
|
+ hv_hypercall_pg = NULL;
|
|
|
|
|
+
|
|
|
/* Reset the hypercall page */
|
|
/* Reset the hypercall page */
|
|
|
hypercall_msr.as_uint64 = 0;
|
|
hypercall_msr.as_uint64 = 0;
|
|
|
wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
|
|
wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
|