@@ -49,17 +49,6 @@ enum hv_cpuid_function {
HVCPUID_IMPLEMENTATION_LIMITS = 0x40000005,
};
-#define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE 0x400
-
-#define HV_X64_MSR_CRASH_P0 0x40000100
-#define HV_X64_MSR_CRASH_P1 0x40000101
-#define HV_X64_MSR_CRASH_P2 0x40000102
-#define HV_X64_MSR_CRASH_P3 0x40000103
-#define HV_X64_MSR_CRASH_P4 0x40000104
-#define HV_X64_MSR_CRASH_CTL 0x40000105
-
-#define HV_CRASH_CTL_CRASH_NOTIFY 0x8000000000000000
-
/* Define version of the synthetic interrupt controller. */
#define HV_SYNIC_VERSION (1)
@@ -35,8 +35,6 @@
#include <asm/hyperv.h>
#include <asm/hypervisor.h>
#include <asm/mshyperv.h>
-#include <linux/notifier.h>
-#include <linux/ptrace.h>
#include "hyperv_vmbus.h"
static struct acpi_device *hv_acpi_dev;
@@ -45,31 +43,6 @@ static struct tasklet_struct msg_dpc;
static struct completion probe_event;
static int irq;
-
-int hyperv_panic_event(struct notifier_block *nb,
- unsigned long event, void *ptr)
-{
- struct pt_regs *regs;
-
- regs = current_pt_regs();
-
- wrmsrl(HV_X64_MSR_CRASH_P0, regs->ip);
- wrmsrl(HV_X64_MSR_CRASH_P1, regs->ax);
- wrmsrl(HV_X64_MSR_CRASH_P2, regs->bx);
- wrmsrl(HV_X64_MSR_CRASH_P3, regs->cx);
- wrmsrl(HV_X64_MSR_CRASH_P4, regs->dx);
-
- /*
- * Let Hyper-V know there is crash data available
- */
- wrmsrl(HV_X64_MSR_CRASH_CTL, HV_CRASH_CTL_CRASH_NOTIFY);
- return NOTIFY_DONE;
-}
-
-static struct notifier_block hyperv_panic_block = {
- .notifier_call = hyperv_panic_event,
-};
-
struct resource hyperv_mmio = {
.name = "hyperv mmio",
.flags = IORESOURCE_MEM,
@@ -738,14 +711,6 @@ static int vmbus_bus_init(int irq)
if (ret)
goto err_alloc;
- /*
- * Only register if the crash MSRs are available
- */
- if (ms_hyperv.features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE) {
- atomic_notifier_chain_register(&panic_notifier_list,
- &hyperv_panic_block);
- }
-
vmbus_request_offers();
return 0;