From: Dexuan Cui <decui@xxxxxxxxxxxxx> Sent: Monday, September 2, 2019 5:23 PM > > Before suspend, Linux must make sure all the hv_sock channels have been > properly cleaned up, because a hv_sock connection can not persist across > hibernation, and the user-space app must be properly notified of the > state change of the connection. > > Before suspend, Linux also must make sure all the sub-channels have been > destroyed, i.e. the related channel structs of the sub-channels must be > properly removed, otherwise they would cause a conflict when the > sub-channels are recreated upon resume. > > Add a counter to track such channels, and vmbus_bus_suspend() should wait > for the counter to drop to zero. > > Signed-off-by: Dexuan Cui <decui@xxxxxxxxxxxxx> > --- > drivers/hv/channel_mgmt.c | 26 ++++++++++++++++++++++++++ > drivers/hv/connection.c | 3 +++ > drivers/hv/hyperv_vmbus.h | 12 ++++++++++++ > drivers/hv/vmbus_drv.c | 44 +++++++++++++++++++++++++++++++++++++++++++- > 4 files changed, 84 insertions(+), 1 deletion(-) > Reviewed-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>