drm/bridge: dw_hdmi: set vdisplay for frame packing 3d mode
[firefly-linux-kernel-4.4.55.git] / drivers / hv / hv_snapshot.c
index 81882d4848bdf1f29f1d26e86bd27f49b3ddb206..faad79ae318a63bf87ab6a3a190565fb3af96ec6 100644 (file)
@@ -66,6 +66,7 @@ static int dm_reg_value;
 static const char vss_devname[] = "vmbus/hv_vss";
 static __u8 *recv_buffer;
 static struct hvutil_transport *hvt;
+static struct completion release_event;
 
 static void vss_send_op(struct work_struct *dummy);
 static void vss_timeout_func(struct work_struct *dummy);
@@ -326,11 +327,13 @@ static void vss_on_reset(void)
        if (cancel_delayed_work_sync(&vss_timeout_work))
                vss_respond_to_host(HV_E_FAIL);
        vss_transaction.state = HVUTIL_DEVICE_INIT;
+       complete(&release_event);
 }
 
 int
 hv_vss_init(struct hv_util_service *srv)
 {
+       init_completion(&release_event);
        if (vmbus_proto_version < VERSION_WIN8_1) {
                pr_warn("Integration service 'Backup (volume snapshot)'"
                        " not supported on this host version.\n");
@@ -360,4 +363,5 @@ void hv_vss_deinit(void)
        cancel_delayed_work_sync(&vss_timeout_work);
        cancel_work_sync(&vss_send_op_work);
        hvutil_transport_destroy(hvt);
+       wait_for_completion(&release_event);
 }