Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753653AbbF3QT6 (ORCPT ); Tue, 30 Jun 2015 12:19:58 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:44773 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750952AbbF3QTv (ORCPT ); Tue, 30 Jun 2015 12:19:51 -0400 Date: Tue, 30 Jun 2015 17:19:47 +0100 From: Luis Henriques To: linux-kernel@vger.kernel.org, stable@vger.kernel.org, kernel-team@lists.ubuntu.com Cc: Nick Meier , "K. Y. Srinivasan" , Greg Kroah-Hartman , Joseph Salisbury Subject: Re: [PATCH 3.16.y-ckt 48/71] Drivers: hv: vmbus: Add support for VMBus panic notifier handler Message-ID: <20150630161947.GA1865@ares> References: <1435226570-3669-1-git-send-email-luis.henriques@canonical.com> <1435226570-3669-49-git-send-email-luis.henriques@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1435226570-3669-49-git-send-email-luis.henriques@canonical.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4455 Lines: 130 On Thu, Jun 25, 2015 at 11:02:27AM +0100, Luis Henriques wrote: > 3.16.7-ckt14 -stable review patch. If anyone has any objections, please let me know. > As pointed out by Greg, this is actually a new feature that shouldn't be added to -stable releases. Thus, I'm dropping this patch and 5ef5b6927f14 ("Drivers: hv: vmbus: Correcting truncation error for constant HV_CRASH_CTL_CRASH_NOTIFY") Cheers, -- Lu?s > ------------------ > > From: Nick Meier > > commit 96c1d0581d00f7abe033350edb021a9d947d8d81 upstream. > > Hyper-V allows a guest to notify the Hyper-V host that a panic > condition occured. This notification can include up to five 64 > bit values. These 64 bit values are written into crash MSRs. > Once the data has been written into the crash MSRs, the host is > then notified by writing into a Crash Control MSR. On the Hyper-V > host, the panic notification data is captured in the Windows Event > log as a 18590 event. > > Crash MSRs are defined in appendix H of the Hypervisor Top Level > Functional Specification. At the time of this patch, v4.0 is the > current functional spec. The URL for the v4.0 document is: > > http://download.microsoft.com/download/A/B/4/AB43A34E-BDD0-4FA6-BDEF-79EEF16E880B/Hypervisor Top Level Functional Specification v4.0.docx > > Signed-off-by: Nick Meier > Signed-off-by: K. Y. Srinivasan > Signed-off-by: Greg Kroah-Hartman > Signed-off-by: Joseph Salisbury > Signed-off-by: Luis Henriques > --- > drivers/hv/hyperv_vmbus.h | 11 +++++++++++ > drivers/hv/vmbus_drv.c | 35 +++++++++++++++++++++++++++++++++++ > 2 files changed, 46 insertions(+) > > diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h > index c386d8dc7223..64318c03002a 100644 > --- a/drivers/hv/hyperv_vmbus.h > +++ b/drivers/hv/hyperv_vmbus.h > @@ -49,6 +49,17 @@ 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) > > diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c > index 4d6b26979fbd..3d2d710744ca 100644 > --- a/drivers/hv/vmbus_drv.c > +++ b/drivers/hv/vmbus_drv.c > @@ -35,6 +35,8 @@ > #include > #include > #include > +#include > +#include > #include "hyperv_vmbus.h" > > static struct acpi_device *hv_acpi_dev; > @@ -43,6 +45,31 @@ 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, > @@ -711,6 +738,14 @@ 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; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/