| From 2d0c3b5ad739697a68dc8a444f5b9f4817cf8f8f Mon Sep 17 00:00:00 2001 |
| From: "K. Y. Srinivasan" <kys@microsoft.com> |
| Date: Mon, 14 Dec 2015 16:01:57 -0800 |
| Subject: Drivers: hv: utils: Invoke the poll function after handshake |
| |
| From: K. Y. Srinivasan <kys@microsoft.com> |
| |
| commit 2d0c3b5ad739697a68dc8a444f5b9f4817cf8f8f upstream. |
| |
| When the handshake with daemon is complete, we should poll the channel since |
| during the handshake, we will not be processing any messages. This is a |
| potential bug if the host is waiting for a response from the guest. |
| I would like to thank Dexuan for pointing this out. |
| |
| Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> |
| Signed-off-by: Dexuan Cui <decui@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/hv/hv_kvp.c | 2 +- |
| drivers/hv/hv_snapshot.c | 2 +- |
| 2 files changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/hv/hv_kvp.c |
| +++ b/drivers/hv/hv_kvp.c |
| @@ -155,7 +155,7 @@ static int kvp_handle_handshake(struct h |
| pr_debug("KVP: userspace daemon ver. %d registered\n", |
| KVP_OP_REGISTER); |
| kvp_register(dm_reg_value); |
| - kvp_transaction.state = HVUTIL_READY; |
| + hv_poll_channel(kvp_transaction.recv_channel, kvp_poll_wrapper); |
| |
| return 0; |
| } |
| --- a/drivers/hv/hv_snapshot.c |
| +++ b/drivers/hv/hv_snapshot.c |
| @@ -114,7 +114,7 @@ static int vss_handle_handshake(struct h |
| default: |
| return -EINVAL; |
| } |
| - vss_transaction.state = HVUTIL_READY; |
| + hv_poll_channel(vss_transaction.recv_channel, vss_poll_wrapper); |
| pr_debug("VSS: userspace daemon ver. %d registered\n", dm_reg_value); |
| return 0; |
| } |