RE: [PATCH V3 1/6] x86/Hyper-V: Unload vmbus channel in hv panic callback
From: Michael Kelley
Date: Wed Mar 25 2020 - 14:28:54 EST
From: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx> Sent: Tuesday, March 24, 2020 12:57 AM
>
> When kdump is not configured, a Hyper-V VM might still respond to
> network traffic after a kernel panic when kernel parameter panic=0.
> The panic CPU goes into an infinite loop with interrupts enabled,
> and the VMbus driver interrupt handler still works because the
> VMbus connection is unloaded only in the kdump path. The network
> responses make the other end of the connection think the VM is
> still functional even though it has panic'ed, which could affect any
> failover actions that should be taken.
>
> Fix this by unloading the VMbus connection during the panic process.
> vmbus_initiate_unload() could then be called twice (e.g., by
> hyperv_panic_event() and hv_crash_handler(), so reset the connection
> state in vmbus_initiate_unload() to ensure the unload is done only
> once.
>
> Signed-off-by: Tianyu Lan <Tianyu.Lan@xxxxxxxxxxxxx>
> ---
> Change since v1:
> - Update change log
> - Use xchg() to change vmbus connection status
> Change since v2:
> - Update comment of registering panic callback.
> ---
> drivers/hv/channel_mgmt.c | 3 +++
> drivers/hv/vmbus_drv.c | 21 +++++++++++++--------
> 2 files changed, 16 insertions(+), 8 deletions(-)
>
Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>