[PATCH V4 6/6] x86/Hyper-V: Report crash data in die() when panic_on_oops is set

From: ltykernel
Date: Tue Mar 31 2020 - 03:38:52 EST


From: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx>

When oops happens with panic_on_oops unset, the oops
thread is killed by die() and system continues to run.
In such case, guest should not report crash register
data to host since system still runs. Fix it.

Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
Signed-off-by: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx>
---
Change since v3:
Fix compile error
---
drivers/hv/vmbus_drv.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 172ceae69abb..4bc02aea2098 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -31,6 +31,7 @@
#include <linux/kdebug.h>
#include <linux/efi.h>
#include <linux/random.h>
+#include <linux/kernel.h>
#include <linux/syscore_ops.h>
#include <clocksource/hyperv_timer.h>
#include "hyperv_vmbus.h"
@@ -91,7 +92,7 @@ static int hyperv_die_event(struct notifier_block *nb, unsigned long val,
* doing hyperv_report_panic_msg() later with kmsg data, don't do
* the notification here.
*/
- if (hyperv_report_reg())
+ if (hyperv_report_reg() && panic_on_oops)
hyperv_report_panic(regs, val);
return NOTIFY_DONE;
}
--
2.14.5