lkml.org 
[lkml]   [2020]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.6 029/166] x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set
    Date
    From: Tianyu Lan <Tianyu.Lan@microsoft.com>

    commit 040026df7088c56ccbad28f7042308f67bde63df upstream.

    When sysctl_record_panic_msg is not set, the panic will
    not be reported to Hyper-V via hyperv_report_panic_msg().
    So the crash should be reported via hyperv_report_panic().

    Fixes: 81b18bce48af ("Drivers: HV: Send one page worth of kmsg dump over Hyper-V during panic")
    Reviewed-by: Michael Kelley <mikelley@microsoft.com>
    Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
    Link: https://lore.kernel.org/r/20200406155331.2105-6-Tianyu.Lan@microsoft.com
    Signed-off-by: Wei Liu <wei.liu@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/hv/vmbus_drv.c | 23 ++++++++++++++---------
    1 file changed, 14 insertions(+), 9 deletions(-)

    --- a/drivers/hv/vmbus_drv.c
    +++ b/drivers/hv/vmbus_drv.c
    @@ -48,6 +48,18 @@ static int hyperv_cpuhp_online;

    static void *hv_panic_page;

    +/*
    + * Boolean to control whether to report panic messages over Hyper-V.
    + *
    + * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
    + */
    +static int sysctl_record_panic_msg = 1;
    +
    +static int hyperv_report_reg(void)
    +{
    + return !sysctl_record_panic_msg || !hv_panic_page;
    +}
    +
    static int hyperv_panic_event(struct notifier_block *nb, unsigned long val,
    void *args)
    {
    @@ -61,7 +73,7 @@ static int hyperv_panic_event(struct not
    * the notification here.
    */
    if (ms_hyperv.misc_features & HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE
    - && !hv_panic_page) {
    + && hyperv_report_reg()) {
    regs = current_pt_regs();
    hyperv_report_panic(regs, val);
    }
    @@ -79,7 +91,7 @@ static int hyperv_die_event(struct notif
    * doing hyperv_report_panic_msg() later with kmsg data, don't do
    * the notification here.
    */
    - if (!hv_panic_page)
    + if (hyperv_report_reg())
    hyperv_report_panic(regs, val);
    return NOTIFY_DONE;
    }
    @@ -1268,13 +1280,6 @@ static void vmbus_isr(void)
    }

    /*
    - * Boolean to control whether to report panic messages over Hyper-V.
    - *
    - * It can be set via /proc/sys/kernel/hyperv/record_panic_msg
    - */
    -static int sysctl_record_panic_msg = 1;
    -
    -/*
    * Callback from kmsg_dump. Grab as much as possible from the end of the kmsg
    * buffer and call into Hyper-V to transfer the data.
    */

    \
     
     \ /
      Last update: 2020-04-22 12:25    [W:2.059 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site