diff options
author | Alex Shi <alex.shi@linaro.org> | 2017-03-20 12:03:13 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2017-03-20 12:03:13 +0800 |
commit | 89e7fad96be88f30f491bf227d864bf5e8e701b2 (patch) | |
tree | 6316161ebd26b780991ff8632471fbbfa3af7ea8 /drivers/hv/hv_fcopy.c | |
parent | 5b0250d2571ee75ca3c0b34579c3e90bc2bd9c6a (diff) | |
parent | 1c563c0006661025d7a6c9bc85fc889a4e8a1c06 (diff) |
Merge branch 'linux-linaro-lsk-v4.4' into linux-linaro-lsk-v4.4-rtlsk-v4.4-17.09-rtlsk-v4.4-17.08-rtlsk-v4.4-17.07-rtlsk-v4.4-17.06-rtlsk-v4.4-17.05-rtlsk-v4.4-17.03-rt
Diffstat (limited to 'drivers/hv/hv_fcopy.c')
-rw-r--r-- | drivers/hv/hv_fcopy.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/hv/hv_fcopy.c b/drivers/hv/hv_fcopy.c index c37a71e13de0..1fb02dcbc500 100644 --- a/drivers/hv/hv_fcopy.c +++ b/drivers/hv/hv_fcopy.c @@ -61,6 +61,7 @@ static DECLARE_WORK(fcopy_send_work, fcopy_send_data); static const char fcopy_devname[] = "vmbus/hv_fcopy"; static u8 *recv_buffer; static struct hvutil_transport *hvt; +static struct completion release_event; /* * This state maintains the version number registered by the daemon. */ @@ -312,12 +313,14 @@ static void fcopy_on_reset(void) if (cancel_delayed_work_sync(&fcopy_timeout_work)) fcopy_respond_to_host(HV_E_FAIL); + complete(&release_event); } int hv_fcopy_init(struct hv_util_service *srv) { recv_buffer = srv->recv_buffer; + init_completion(&release_event); /* * When this driver loads, the user level daemon that * processes the host requests may not yet be running. @@ -339,4 +342,5 @@ void hv_fcopy_deinit(void) fcopy_transaction.state = HVUTIL_DEVICE_DYING; cancel_delayed_work_sync(&fcopy_timeout_work); hvutil_transport_destroy(hvt); + wait_for_completion(&release_event); } |