浏览代码

Drivers: hv: utils: Invoke the poll function after handshake

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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
K. Y. Srinivasan 10 年之前
父节点
当前提交
2d0c3b5ad7
共有 2 个文件被更改,包括 2 次插入2 次删除
  1. 1 1
      drivers/hv/hv_kvp.c
  2. 1 1
      drivers/hv/hv_snapshot.c

+ 1 - 1
drivers/hv/hv_kvp.c

@@ -154,7 +154,7 @@ static int kvp_handle_handshake(struct hv_kvp_msg *msg)
 	pr_debug("KVP: userspace daemon ver. %d registered\n",
 	pr_debug("KVP: userspace daemon ver. %d registered\n",
 		 KVP_OP_REGISTER);
 		 KVP_OP_REGISTER);
 	kvp_register(dm_reg_value);
 	kvp_register(dm_reg_value);
-	kvp_transaction.state = HVUTIL_READY;
+	hv_poll_channel(kvp_transaction.recv_channel, kvp_poll_wrapper);
 
 
 	return 0;
 	return 0;
 }
 }

+ 1 - 1
drivers/hv/hv_snapshot.c

@@ -113,7 +113,7 @@ static int vss_handle_handshake(struct hv_vss_msg *vss_msg)
 	default:
 	default:
 		return -EINVAL;
 		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);
 	pr_debug("VSS: userspace daemon ver. %d registered\n", dm_reg_value);
 	return 0;
 	return 0;
 }
 }