Skip to content

Commit

Permalink
x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
Browse files Browse the repository at this point in the history
If kmsg_dump_register() fails, hv_panic_page will not be used
anywhere.  So free and reset it.

Fixes: 81b18bc ("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-3-Tianyu.Lan@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
  • Loading branch information
Tianyu Lan authored and Wei Liu committed Apr 10, 2020
1 parent 74347a9 commit 7f11a2c
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/hv/vmbus_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1385,9 +1385,13 @@ static int vmbus_bus_init(void)
hv_panic_page = (void *)hv_alloc_hyperv_zeroed_page();
if (hv_panic_page) {
ret = kmsg_dump_register(&hv_kmsg_dumper);
if (ret)
if (ret) {
pr_err("Hyper-V: kmsg dump register "
"error 0x%x\n", ret);
hv_free_hyperv_page(
(unsigned long)hv_panic_page);
hv_panic_page = NULL;
}
} else
pr_err("Hyper-V: panic message page memory "
"allocation failed");
Expand Down Expand Up @@ -1416,7 +1420,6 @@ static int vmbus_bus_init(void)
hv_remove_vmbus_irq();

bus_unregister(&hv_bus);
hv_free_hyperv_page((unsigned long)hv_panic_page);
unregister_sysctl_table(hv_ctl_table_hdr);
hv_ctl_table_hdr = NULL;
return ret;
Expand Down

0 comments on commit 7f11a2c

Please sign in to comment.